Sync data

This commit is contained in:
Guangcong Luo 2014-07-04 15:45:10 -05:00
parent acd4900e81
commit e90de36e65
5 changed files with 451 additions and 280 deletions

View File

@ -56,9 +56,10 @@ exports.BattleAbilities = {
shortDesc: "If this Pokemon is KOed with a contact move, that move's user loses 1/4 its max HP.",
id: "aftermath",
name: "Aftermath",
onFaint: function (target, source, effect) {
if (effect && effect.effectType === 'Move' && effect.isContact && source) {
this.damage(source.maxhp / 4, source, target);
onAfterDamageOrder: 1,
onAfterDamage: function (damage, target, source, move) {
if (source && source !== target && move && move.isContact && !target.hp) {
this.damage(source.maxhp / 4, source, target, null, true);
}
},
rating: 3,
@ -372,10 +373,10 @@ exports.BattleAbilities = {
"compoundeyes": {
desc: "The accuracy of this Pokemon's moves receives a 30% increase; for example, a 75% accurate move becomes 97.5% accurate.",
shortDesc: "This Pokemon's moves have their accuracy boosted to 1.3x.",
onModifyMove: function (move) {
if (typeof move.accuracy !== 'number') return;
onSourceAccuracy: function (accuracy) {
if (typeof accuracy !== 'number') return;
this.debug('compoundeyes - enhancing accuracy');
move.accuracy *= 1.3;
return accuracy * 1.3;
},
id: "compoundeyes",
name: "Compound Eyes",
@ -1210,7 +1211,7 @@ exports.BattleAbilities = {
onStart: function (pokemon) {
var foeactive = pokemon.side.foe.active;
for (var i = 0; i < foeactive.length; i++) {
if (!foeactive[i] || foeactive[i].fainted) continue;
if (!foeactive[i] || !this.isAdjacent(foeactive[i], pokemon)) continue;
if (foeactive[i].volatiles['substitute']) {
// does it give a message?
this.add('-activate', foeactive[i], 'Substitute', 'ability: Intimidate', '[of] ' + pokemon);
@ -1231,7 +1232,7 @@ exports.BattleAbilities = {
onAfterDamageOrder: 1,
onAfterDamage: function (damage, target, source, move) {
if (source && source !== target && move && move.isContact) {
this.damage(source.maxhp / 8, source, target);
this.damage(source.maxhp / 8, source, target, null, true);
}
},
id: "ironbarbs",
@ -1290,6 +1291,7 @@ exports.BattleAbilities = {
shortDesc: "This Pokemon's held item has no effect, except Macho Brace. Fling cannot be used.",
onModifyPokemonPriority: 1,
onModifyPokemon: function (pokemon) {
if (pokemon.getItem().megaEvolves) return;
pokemon.ignore['Item'] = true;
},
id: "klutz",
@ -1384,7 +1386,7 @@ exports.BattleAbilities = {
this.debug("Heal is occurring: " + target + " <- " + source + " :: " + effect.id);
var canOoze = {drain: 1, leechseed: 1};
if (canOoze[effect.id]) {
this.damage(damage);
this.damage(damage, null, null, null, true);
return 0;
}
},
@ -1448,7 +1450,7 @@ exports.BattleAbilities = {
shortDesc: "This Pokemon steals the held item of a target it hits with a move.",
onHit: function (target, source, move) {
// We need to hard check if the ability is Magician since the event will be run both ways.
if (target && target !== source && move && source.ability === 'magician') {
if (target && target !== source && source.ability === 'magician' && move && move.category !== 'Status') {
if (source.item) return;
var yourItem = target.takeItem(source);
if (!yourItem) return;
@ -1665,7 +1667,9 @@ exports.BattleAbilities = {
name: "Mummy",
onAfterDamage: function (damage, target, source, move) {
if (source && source !== target && move && move.isContact) {
if (source.setAbility('mummy', source, 'mummy', true)) {
var oldAbility = source.setAbility('mummy', source, 'mummy', true);
if (oldAbility) {
this.add('-endability', source, oldAbility, '[from] Mummy');
this.add('-ability', source, 'Mummy', '[from] Mummy');
}
}
@ -1988,7 +1992,7 @@ exports.BattleAbilities = {
if (!move || pokemon.volatiles.mustrecharge) return;
var moveType = (move.id === 'hiddenpower' ? pokemon.hpType : move.type);
if (pokemon.getTypes().join() !== moveType) {
if (!pokemon.setType(moveType)) return false;
if (!pokemon.setType(moveType)) return;
this.add('-start', pokemon, 'typechange', moveType, '[from] Protean');
}
},
@ -2132,7 +2136,7 @@ exports.BattleAbilities = {
onAfterDamageOrder: 1,
onAfterDamage: function (damage, target, source, move) {
if (source && source !== target && move && move.isContact) {
this.damage(source.maxhp / 8, source, target);
this.damage(source.maxhp / 8, source, target, null, true);
}
},
id: "roughskin",
@ -2382,7 +2386,7 @@ exports.BattleAbilities = {
return this.chainModify(0.5);
},
onModifySpe: function (speMod, pokemon) {
if (!pokemon.hasAbility('slowstart')) {
if (pokemon.ignore['Ability'] === true || pokemon.ability !== 'slowstart') {
pokemon.removeVolatile('slowstart');
return;
}

File diff suppressed because it is too large Load Diff

View File

@ -1448,6 +1448,14 @@ exports.BattleItems = {
gen: 4,
desc: "If holder's HP is full, will survive an attack that would KO it with 1HP. Single use."
},
"friendball": {
id: "friendball",
name: "Friend Ball",
spritenum: 153,
num: 497,
gen: 2,
desc: "A Poké Ball that makes caught Pokémon more friendly."
},
"fullincense": {
id: "fullincense",
name: "Full Incense",
@ -3865,13 +3873,13 @@ exports.BattleItems = {
},
onModifySpAPriority: 1,
onModifySpA: function (spa, pokemon) {
if (pokemon.baseTemplate.species === 'Latios' || pokemon.baseTemplate.species === 'Latias') {
if (pokemon.baseTemplate.num === 380 || pokemon.baseTemplate.num === 381) {
return this.chainModify(1.5);
}
},
onModifySpDPriority: 2,
onModifySpD: function (spd, pokemon) {
if (pokemon.baseTemplate.species === 'Latios' || pokemon.baseTemplate.species === 'Latias') {
if (pokemon.baseTemplate.num === 380 || pokemon.baseTemplate.num === 381) {
return this.chainModify(1.5);
}
},

View File

@ -422,7 +422,7 @@ exports.BattleMovedex = {
},
"aromaticmist": {
num: 597,
accuracy: 100,
accuracy: true,
basePower: 0,
category: "Status",
desc: "The user raises the Special Defense stat of itself and ally Pokemon by 1.",
@ -445,7 +445,7 @@ exports.BattleMovedex = {
accuracy: true,
basePower: 0,
category: "Status",
desc: "A random move among those known by the user's party members is selected for use. Does not select Assist, Belch, Bestow, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Tail, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Rage Powder, Sketch, Sleep Talk, Snatch, Spiky Shield, Struggle, Switcheroo, Thief, Transform, or Trick.",
desc: "A random move among those known by the user's party members is selected for use. Does not select Assist, Belch, Bestow, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Tail, Endure, Feint, Focus Punch, Follow Me, Helping Hand, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Rage Powder, Sketch, Sleep Talk, Snatch, Spiky Shield, Struggle, Switcheroo, Thief, Transform, or Trick.",
shortDesc: "Uses a random move known by a team member.",
id: "assist",
name: "Assist",
@ -459,7 +459,7 @@ exports.BattleMovedex = {
for (var i = 0; i < pokemon.moves.length; i++) {
var move = pokemon.moves[i];
var noAssist = {
assist:1, belch:1, bestow:1, bounce:1, chatter:1, circlethrow:1, copycat:1, counter:1, covet:1, destinybond:1, detect:1, dig:1, dive:1, dragontail:1, endure:1, feint:1, fly:1, focuspunch:1, followme:1, helpinghand:1, mefirst:1, metronome:1, mimic:1, mirrorcoat:1, mirrormove:1, naturepower:1, phantomforce:1, protect:1, ragepowder:1, roar:1, shadowforce:1, sketch:1, sleeptalk:1, snatch:1, spikyshield:1, struggle:1, switcheroo:1, thief:1, transform:1, trick:1, whirlwind:1
assist:1, belch:1, bestow:1, bounce:1, chatter:1, circlethrow:1, copycat:1, counter:1, covet:1, destinybond:1, detect:1, dig:1, dive:1, dragontail:1, endure:1, feint:1, fly:1, focuspunch:1, followme:1, helpinghand:1, kingsshield:1, matblock:1, mefirst:1, metronome:1, mimic:1, mirrorcoat:1, mirrormove:1, naturepower:1, phantomforce:1, protect:1, ragepowder:1, roar:1, shadowforce:1, sketch:1, sleeptalk:1, snatch:1, spikyshield:1, struggle:1, switcheroo:1, thief:1, transform:1, trick:1, whirlwind:1
};
if (move && !noAssist[move]) {
moves.push(move);
@ -690,7 +690,7 @@ exports.BattleMovedex = {
accuracy: 100,
basePower: 60,
basePowerCallback: function (pokemon, target) {
if (target.lastDamage > 0 && pokemon.lastAttackedBy && pokemon.lastAttackedBy.thisTurn) {
if (target.lastDamage > 0 && pokemon.lastAttackedBy && pokemon.lastAttackedBy.thisTurn && pokemon.lastAttackedBy.pokemon === target) {
this.debug('Boosted for getting hit by ' + pokemon.lastAttackedBy.move);
return 120;
}
@ -1811,12 +1811,13 @@ exports.BattleMovedex = {
accuracy: true,
basePower: 0,
category: "Status",
desc: "Lowers the target's Special Attack stat by 1.",
desc: "Lowers the target's Special Attack by 1 stage. Pokemon with the Ability Soundproof are immune.",
shortDesc: "Lowers the target's Sp. Atk by 1.",
id: "confide",
name: "Confide",
pp: 20,
priority: 0,
isSoundBased: true,
isNotProtectable: true,
boosts: {
spa: -1
@ -2040,10 +2041,8 @@ exports.BattleMovedex = {
accuracy: 100,
basePower: 0,
damageCallback: function (pokemon) {
if (pokemon.lastAttackedBy && pokemon.lastAttackedBy.thisTurn && this.getCategory(pokemon.lastAttackedBy.move) === 'Physical') {
return 2 * pokemon.lastAttackedBy.damage;
}
return false;
if (!pokemon.volatiles['counter']) return 0;
return pokemon.volatiles['counter'].damage || 1;
},
category: "Physical",
desc: "Deals damage to the last foe to hit the user with a physical attack this turn. The damage is equal to twice the HP lost by the user from that attack. If that foe's position is no longer in use, damage is done to a random foe in range. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by a foe's physical attack this turn. Makes contact. Priority -5.",
@ -2054,6 +2053,32 @@ exports.BattleMovedex = {
pp: 20,
priority: -5,
isContact: true,
beforeTurnCallback: function (pokemon) {
pokemon.addVolatile('counter');
},
onTryHit: function (target, source, move) {
if (!source.volatiles['counter']) return false;
if (source.volatiles['counter'].position === null) return false;
},
effect: {
duration: 1,
noCopy: true,
onStart: function (target, source, source2, move) {
this.effectData.position = null;
this.effectData.damage = 0;
},
onRedirectTarget: function (target, source, source2) {
if (source !== this.effectData.target) return;
return source.side.foe.active[this.effectData.position];
},
onDamagePriority: -101,
onDamage: function (damage, target, source, effect) {
if (effect && effect.effectType === 'Move' && source.side !== target.side && this.getCategory(effect.id) === 'Physical') {
this.effectData.position = source.position;
this.effectData.damage = 2 * damage;
}
}
},
secondary: false,
target: "scripted",
type: "Fighting"
@ -2629,12 +2654,13 @@ exports.BattleMovedex = {
accuracy: true,
basePower: 40,
category: "Special",
desc: "Deals damage to one adjacent target and does not check accuracy. Makes contact.",
desc: "Deals damage to one adjacent target. Pokemon with the Ability Soundproof are immune.",
shortDesc: "This move does not check accuracy.",
id: "disarmingvoice",
name: "Disarming Voice",
pp: 15,
priority: 0,
isSoundBased: true,
secondary: false,
target: "normal",
type: "Fairy"
@ -3839,12 +3865,13 @@ exports.BattleMovedex = {
accuracy: 100,
basePower: 30,
category: "Physical",
desc: "When the user knocks out a target with this move, the user's Attack stat rises sharply.",
desc: "When the user knocks out a target with this move, the user's Attack stat rises sharply. Makes contact.",
shortDesc: "Raises Attack by 2 if knocks out target.",
id: "fellstinger",
name: "Fell Stinger",
pp: 25,
priority: 0,
isContact: true,
onHit: function (target, pokemon) {
pokemon.addVolatile('fellstinger');
},
@ -3888,17 +3915,16 @@ exports.BattleMovedex = {
basePower: 0,
damageCallback: function (pokemon) {
var damage = pokemon.hp;
pokemon.hp = 0;
pokemon.faint();
return damage;
},
category: "Special",
desc: "Deals damage to one adjacent target equal to the user's current HP. If this move is successful, the user faints. Makes contact.",
desc: "Deals damage to one adjacent target equal to the user's current HP. If this move is successful, the user faints.",
shortDesc: "Does damage equal to the user's HP. User faints.",
id: "finalgambit",
name: "Final Gambit",
pp: 5,
priority: 0,
isContact: true,
selfdestruct: true,
secondary: false,
target: "normal",
@ -4410,7 +4436,7 @@ exports.BattleMovedex = {
accuracy: 95,
basePower: 80,
category: "Physical",
desc: "Both Fighting-type and Flying-type simultaneously.",
desc: "Deals damage to one adjacent or non-adjacent target. Both Fighting-type and Flying-type simultaneously. Makes contact.",
shortDesc: "Both Fighting-type and Flying-type simultaneously.",
id: "flyingpress",
name: "Flying Press",
@ -4420,8 +4446,9 @@ exports.BattleMovedex = {
return this.getEffectiveness(type, target) + this.getEffectiveness('Flying', target);
},
priority: 0,
isContact: true,
secondary: false,
target: "normal",
target: "any",
type: "Fighting"
},
"focusblast": {
@ -4928,7 +4955,7 @@ exports.BattleMovedex = {
},
effect: {
onStart: function (pokemon) {
this.add('-endability', pokemon, pokemon.ability);
this.add('-endability', pokemon);
},
onModifyPokemonPriority: 2,
onModifyPokemon: function (pokemon) {
@ -5769,7 +5796,7 @@ exports.BattleMovedex = {
else this.heal(Math.ceil(target.maxhp * 0.5));
},
secondary: false,
target: "normal",
target: "any",
type: "Psychic"
},
"healingwish": {
@ -5970,12 +5997,17 @@ exports.BattleMovedex = {
effect: {
duration: 1,
onStart: function (target, source) {
this.effectData.multiplier = 1.5;
this.add('-singleturn', target, 'Helping Hand', '[of] ' + source);
},
onRestart: function(target, source) {
this.effectData.multiplier *= 1.5;
this.add('singleturn', target, 'Helping Hand', '[of] ' + source);
},
onBasePowerPriority: 3,
onBasePower: function (basePower) {
this.debug('Boosting from Helping Hand');
return this.chainModify(1.5);
this.debug('Boosting from Helping Hand: ' + this.effectData.multiplier);
return this.chainModify(this.effectData.multiplier);
}
},
secondary: false,
@ -6486,7 +6518,6 @@ exports.BattleMovedex = {
pp: 5,
priority: 0,
isUnreleased: true,
isContact: true,
breaksProtect: true,
secondary: false,
target: "normal",
@ -6876,7 +6907,7 @@ exports.BattleMovedex = {
basePower: 0,
category: "Status",
desc: "Changes Normal-type moves to Electric-type moves. Priority +1.",
shortDesc: "Changes Normal moves to Electric type. Priority +1.",
shortDesc: "Normal moves become Electric type. Priority +1.",
id: "iondeluge",
name: "Ion Deluge",
pp: 25,
@ -7095,7 +7126,7 @@ exports.BattleMovedex = {
id: "knockoff",
isViable: true,
name: "Knock Off",
pp: 25,
pp: 20,
priority: 0,
isContact: true,
onBasePowerPriority: 4,
@ -7769,6 +7800,7 @@ exports.BattleMovedex = {
name: "Magnetic Flux",
pp: 20,
priority: 0,
isSnatchable: true,
onHitSide: function (side, source) {
var targets = [];
for (var p in side.active) {
@ -7867,6 +7899,7 @@ exports.BattleMovedex = {
name: "Mat Block",
pp: 10,
priority: 0,
isSnatchable: true,
stallingMove: true, // Note: stallingMove is not used anywhere.
volatileStatus: 'matblock',
onTryHitSide: function (side, source) {
@ -8076,10 +8109,8 @@ exports.BattleMovedex = {
accuracy: 100,
basePower: 0,
damageCallback: function (pokemon) {
if (pokemon.lastAttackedBy && pokemon.lastAttackedBy.thisTurn) {
return 1.5 * pokemon.lastAttackedBy.damage;
}
return false;
if (!pokemon.volatiles['metalburst']) return 0;
return pokemon.volatiles['metalburst'].damage || 1;
},
category: "Physical",
desc: "Deals damage to the last foe to hit the user with an attack this turn. The damage is equal to 1.5x the HP lost by the user from that attack. If that foe's position is no longer in use, damage is done to a random foe in range. Only the last hit of a multi-hit attack is counted. Fails if the user moves first or if the user was not hit by a foe's attack this turn.",
@ -8088,6 +8119,32 @@ exports.BattleMovedex = {
name: "Metal Burst",
pp: 10,
priority: 0,
beforeTurnCallback: function (pokemon) {
pokemon.addVolatile('metalburst');
},
onTryHit: function (target, source, move) {
if (!source.volatiles['metalburst']) return false;
if (source.volatiles['metalburst'].position === null) return false;
},
effect: {
duration: 1,
noCopy: true,
onStart: function (target, source, source2, move) {
this.effectData.position = null;
this.effectData.damage = 0;
},
onRedirectTarget: function (target, source, source2) {
if (source !== this.effectData.target) return;
return source.side.foe.active[this.effectData.position];
},
onDamagePriority: -101,
onDamage: function (damage, target, source, effect) {
if (effect && effect.effectType === 'Move' && source.side !== target.side) {
this.effectData.position = source.position;
this.effectData.damage = 1.5 * damage;
}
}
},
secondary: false,
target: "scripted",
type: "Steel"
@ -8180,11 +8237,14 @@ exports.BattleMovedex = {
afteryou:1, assist:1, bestow:1, chatter:1, copycat:1, counter:1, covet:1, destinybond:1, detect:1, endure:1, feint:1, focuspunch:1, followme:1, freezeshock:1, helpinghand:1, iceburn:1, mefirst:1, metronome:1, mimic:1, mirrorcoat:1, mirrormove:1, naturepower:1, protect:1, quash:1, quickguard:1, ragepowder:1, relicsong:1, secretsword:1, sketch:1, sleeptalk:1, snatch:1, snarl:1, snore:1, struggle:1, switcheroo:1, technoblast:1, thief:1, transform:1, trick:1, vcreate:1, wideguard:1, diamondstorm:1, steameruption:1, hyperspacehole:1, thousandarrows:1, thousandwaves:1
};
if (!noMetronome[move.id]) {
moves.push(move.id);
moves.push(move);
}
}
var move = '';
if (moves.length) move = moves[this.random(moves.length)];
if (moves.length) {
moves.sort(function(a,b){return a.num-b.num;});
move = moves[this.random(moves.length)].id;
}
if (!move) {
return false;
}
@ -8328,10 +8388,8 @@ exports.BattleMovedex = {
accuracy: 100,
basePower: 0,
damageCallback: function (pokemon) {
if (pokemon.lastAttackedBy && pokemon.lastAttackedBy.thisTurn && this.getCategory(pokemon.lastAttackedBy.move) === 'Special') {
return 2 * pokemon.lastAttackedBy.damage;
}
return false;
if (!pokemon.volatiles['mirrorcoat']) return 0;
return pokemon.volatiles['mirrorcoat'].damage || 1;
},
category: "Special",
desc: "Deals damage to the last foe to hit the user with a special attack this turn. The damage is equal to twice the HP lost by the user from that attack. If that foe's position is no longer in use, damage is done to a random foe in range. Only the last hit of a multi-hit attack is counted. Fails if the user was not hit by a foe's special attack this turn. Priority -5.",
@ -8341,6 +8399,32 @@ exports.BattleMovedex = {
name: "Mirror Coat",
pp: 20,
priority: -5,
beforeTurnCallback: function (pokemon) {
pokemon.addVolatile('mirrorcoat');
},
onTryHit: function (target, source, move) {
if (!source.volatiles['mirrorcoat']) return false;
if (source.volatiles['mirrorcoat'].position === null) return false;
},
effect: {
duration: 1,
noCopy: true,
onStart: function (target, source, source2, move) {
this.effectData.position = null;
this.effectData.damage = 0;
},
onRedirectTarget: function (target, source, source2) {
if (source !== this.effectData.target) return;
return source.side.foe.active[this.effectData.position];
},
onDamagePriority: -101,
onDamage: function (damage, target, source, effect) {
if (effect && effect.effectType === 'Move' && source.side !== target.side && this.getCategory(effect.id) === 'Special') {
this.effectData.position = source.position;
this.effectData.damage = 2 * damage;
}
}
},
secondary: false,
target: "scripted",
type: "Psychic"
@ -8898,12 +8982,13 @@ exports.BattleMovedex = {
accuracy: 100,
basePower: 0,
category: "Status",
desc: "Lowers the target's Attack and Special Attack by 1 stage. Pokemon protected by Magic Coat or the Ability Magic Bounce are unaffected and instead use this move themselves.",
desc: "Lowers the target's Attack and Special Attack by 1 stage. Pokemon with the Ability Soundproof are immune.",
shortDesc: "Lowers target's Atk and SpAtk by 1.",
id: "nobleroar",
name: "Noble Roar",
pp: 30,
priority: 0,
isSoundBased: true,
boosts: {
atk: -1,
spa: -1
@ -8936,7 +9021,7 @@ exports.BattleMovedex = {
accuracy: 100,
basePower: 80,
category: "Special",
desc: "Deals damage to one adjacent target. The user recovers 75% of the HP lost by the target, rounded up.",
desc: "Deals damage to one adjacent or non-adjacent target. The user recovers 75% of the HP lost by the target, rounded up.",
shortDesc: "User recovers 75% of the damage dealt.",
id: "oblivionwing",
isViable: true,
@ -8945,7 +9030,7 @@ exports.BattleMovedex = {
priority: 0,
drain: [3, 4],
secondary: false,
target: "normal",
target: "any",
type: "Flying"
},
"octazooka": {
@ -9341,15 +9426,15 @@ exports.BattleMovedex = {
accuracy: 90,
basePower: 90,
category: "Physical",
desc: "May lower the target's Attack stat by 1.",
shortDesc: "May lower the target's Attack by 1.",
desc: "10% chance to lower the target's Attack by 1 stage. Makes contact.",
shortDesc: "10% chance to lower the target's Attack by 1.",
id: "playrough",
name: "Play Rough",
pp: 10,
priority: 0,
isContact: true,
secondary: {
chance: 30,
chance: 10,
boosts: {
atk: -1
}
@ -9386,8 +9471,8 @@ exports.BattleMovedex = {
accuracy: 100,
basePower: 50,
category: "Physical",
desc: "Deals damage to one adjacent target with a 30% chance to badly poison it. Makes contact.",
shortDesc: "30% chance to badly poison the target.",
desc: "Deals damage to one adjacent target with a 50% chance to badly poison it. Makes contact.",
shortDesc: "50% chance to badly poison the target.",
id: "poisonfang",
name: "Poison Fang",
pp: 15,
@ -9680,13 +9765,14 @@ exports.BattleMovedex = {
accuracy: 100,
basePower: 40,
category: "Physical",
desc: "Hitting a target raises the Attack stat.",
desc: "Hitting a target raises Attack by 1 stage. Damage is boosted to 1.2x by the Ability Iron Fist.",
shortDesc: "Hitting a target raises Attack by 1",
id: "poweruppunch",
name: "Power-Up Punch",
pp: 20,
priority: 0,
isContact: true,
isPunchAttack: true,
secondary: {
chance: 100,
self: {
@ -10432,7 +10518,7 @@ exports.BattleMovedex = {
pp: 15,
priority: 0,
onHit: function (target, source) {
if (source.num === 493) return false;
if (source.template && source.template.num === 493) return false;
this.add('-start', source, 'typechange', target.getTypes(true).join('/'), '[from] move: Reflect Type', '[of] ' + target);
source.typesData = [];
for (var i = 0, l = target.typesData.length; i < l; i++) {
@ -10576,8 +10662,8 @@ exports.BattleMovedex = {
num: 279,
accuracy: 100,
basePower: 60,
basePowerCallback: function (pokemon, source) {
if (source.lastDamage > 0 && pokemon.lastAttackedBy && pokemon.lastAttackedBy.thisTurn) {
basePowerCallback: function (pokemon, target) {
if (target.lastDamage > 0 && pokemon.lastAttackedBy && pokemon.lastAttackedBy.thisTurn && pokemon.lastAttackedBy.pokemon === target) {
this.debug('Boosted for getting hit by ' + pokemon.lastAttackedBy.move);
return 120;
}
@ -10810,6 +10896,7 @@ exports.BattleMovedex = {
name: "Rock Wrecker",
pp: 5,
priority: 0,
isBullet: true,
self: {
volatileStatus: 'mustrecharge'
},
@ -11247,6 +11334,7 @@ exports.BattleMovedex = {
name: "Searing Shot",
pp: 5,
priority: 0,
isBullet: true,
secondary: {
chance: 30,
status: 'brn'
@ -12937,7 +13025,7 @@ exports.BattleMovedex = {
shortDesc: "Has 1/4 recoil.",
id: "submission",
name: "Submission",
pp: 25,
pp: 20,
priority: 0,
isContact: true,
recoil: [1, 4],
@ -13303,7 +13391,7 @@ exports.BattleMovedex = {
shortDesc: "Hits adjacent Pokemon sharing the user's type.",
id: "synchronoise",
name: "Synchronoise",
pp: 15,
pp: 10,
priority: 0,
onTryHit: function (target, source) {
return target.hasType(source.getTypes());
@ -15081,6 +15169,7 @@ exports.BattleMovedex = {
name: "Zap Cannon",
pp: 5,
priority: 0,
isBullet: true,
secondary: {
chance: 100,
status: 'par'

View File

@ -208,8 +208,8 @@ sunflora:{num:192,species:"Sunflora",types:["Grass"],baseStats:{hp:75,atk:75,def
yanma:{num:193,species:"Yanma",types:["Bug","Flying"],baseStats:{hp:65,atk:65,def:45,spa:75,spd:45,spe:95},abilities:{0:"Speed Boost",1:"Compound Eyes",H:"Frisk"},heightm:1.2,weightkg:38,color:"Red",evos:["yanmega"],eggGroups:["Bug"]},
wooper:{num:194,species:"Wooper",types:["Water","Ground"],baseStats:{hp:55,atk:45,def:45,spa:25,spd:25,spe:15},abilities:{0:"Damp",1:"Water Absorb",H:"Unaware"},heightm:0.4,weightkg:8.5,color:"Blue",evos:["quagsire"],eggGroups:["Water 1","Field"]},
quagsire:{num:195,species:"Quagsire",types:["Water","Ground"],baseStats:{hp:95,atk:85,def:85,spa:65,spd:65,spe:35},abilities:{0:"Damp",1:"Water Absorb",H:"Unaware"},heightm:1.4,weightkg:75,color:"Blue",prevo:"wooper",evoLevel:20,eggGroups:["Water 1","Field"]},
espeon:{num:196,species:"Espeon",types:["Psychic"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:65,atk:65,def:60,spa:130,spd:95,spe:110},abilities:{0:"Synchronize",H:"Magic Bounce"},heightm:0.9,weightkg:26.5,color:"Purple",prevo:"eevee",evoLevel:1,eggGroups:["Field"]},
umbreon:{num:197,species:"Umbreon",types:["Dark"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:95,atk:65,def:110,spa:60,spd:130,spe:65},abilities:{0:"Synchronize",H:"Inner Focus"},heightm:1,weightkg:27,color:"Black",prevo:"eevee",evoLevel:1,eggGroups:["Field"]},
espeon:{num:196,species:"Espeon",types:["Psychic"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:65,atk:65,def:60,spa:130,spd:95,spe:110},abilities:{0:"Synchronize",H:"Magic Bounce"},heightm:0.9,weightkg:26.5,color:"Purple",prevo:"eevee",evoLevel:2,eggGroups:["Field"]},
umbreon:{num:197,species:"Umbreon",types:["Dark"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:95,atk:65,def:110,spa:60,spd:130,spe:65},abilities:{0:"Synchronize",H:"Inner Focus"},heightm:1,weightkg:27,color:"Black",prevo:"eevee",evoLevel:2,eggGroups:["Field"]},
murkrow:{num:198,species:"Murkrow",types:["Dark","Flying"],baseStats:{hp:60,atk:85,def:42,spa:85,spd:42,spe:91},abilities:{0:"Insomnia",1:"Super Luck",H:"Prankster"},heightm:0.5,weightkg:2.1,color:"Black",evos:["honchkrow"],eggGroups:["Flying"]},
slowking:{num:199,species:"Slowking",types:["Water","Psychic"],baseStats:{hp:95,atk:75,def:80,spa:100,spd:110,spe:30},abilities:{0:"Oblivious",1:"Own Tempo",H:"Regenerator"},heightm:2,weightkg:79.5,color:"Pink",prevo:"slowpoke",evoLevel:1,eggGroups:["Monster","Water 1"]},
misdreavus:{num:200,species:"Misdreavus",types:["Ghost"],baseStats:{hp:60,atk:60,def:60,spa:85,spd:85,spe:85},abilities:{0:"Levitate"},heightm:0.7,weightkg:1,color:"Gray",evos:["mismagius"],eggGroups:["Amorphous"]},
@ -459,7 +459,7 @@ cherrim:{num:421,species:"Cherrim",baseForme:"Overcast",types:["Grass"],baseStat
cherrimsunshine:{num:421,species:"Cherrim-Sunshine",baseSpecies:"Cherrim",forme:"Sunshine",formeLetter:"S",types:["Grass"],baseStats:{hp:70,atk:60,def:70,spa:87,spd:78,spe:85},abilities:{0:"Flower Gift"},heightm:0.5,weightkg:9.3,color:"Pink",prevo:"cherubi",evoLevel:25,eggGroups:["Fairy","Grass"]},
shellos:{num:422,species:"Shellos",baseForme:"West",types:["Water"],baseStats:{hp:76,atk:48,def:48,spa:57,spd:62,spe:34},abilities:{0:"Sticky Hold",1:"Storm Drain",H:"Sand Force"},heightm:0.3,weightkg:6.3,color:"Purple",evos:["gastrodon"],eggGroups:["Water 1","Amorphous"],otherForms:["shelloseast"]},
gastrodon:{num:423,species:"Gastrodon",baseForme:"West",types:["Water","Ground"],baseStats:{hp:111,atk:83,def:68,spa:92,spd:82,spe:39},abilities:{0:"Sticky Hold",1:"Storm Drain",H:"Sand Force"},heightm:0.9,weightkg:29.9,color:"Purple",prevo:"shellos",evoLevel:30,eggGroups:["Water 1","Amorphous"],otherForms:["gastrodoneast"]},
ambipom:{num:424,species:"Ambipom",types:["Normal"],baseStats:{hp:75,atk:100,def:66,spa:60,spd:66,spe:115},abilities:{0:"Technician",1:"Pickup",H:"Skill Link"},heightm:1.2,weightkg:20.3,color:"Purple",prevo:"aipom",evoLevel:32,evoMove:"Double Hit",eggGroups:["Field"]},
ambipom:{num:424,species:"Ambipom",types:["Normal"],baseStats:{hp:75,atk:100,def:66,spa:60,spd:66,spe:115},abilities:{0:"Technician",1:"Pickup",H:"Skill Link"},heightm:1.2,weightkg:20.3,color:"Purple",prevo:"aipom",evoLevel:2,evoMove:"Double Hit",eggGroups:["Field"]},
drifloon:{num:425,species:"Drifloon",types:["Ghost","Flying"],baseStats:{hp:90,atk:50,def:34,spa:60,spd:44,spe:70},abilities:{0:"Aftermath",1:"Unburden",H:"Flare Boost"},heightm:0.4,weightkg:1.2,color:"Purple",evos:["drifblim"],eggGroups:["Amorphous"]},
drifblim:{num:426,species:"Drifblim",types:["Ghost","Flying"],baseStats:{hp:150,atk:80,def:44,spa:90,spd:54,spe:80},abilities:{0:"Aftermath",1:"Unburden",H:"Flare Boost"},heightm:1.2,weightkg:15,color:"Purple",prevo:"drifloon",evoLevel:28,eggGroups:["Amorphous"]},
buneary:{num:427,species:"Buneary",types:["Normal"],baseStats:{hp:55,atk:66,def:44,spa:44,spd:56,spe:85},abilities:{0:"Run Away",1:"Klutz",H:"Limber"},heightm:0.4,weightkg:5.5,color:"Brown",evos:["lopunny"],eggGroups:["Field","Human-Like"]},
@ -508,8 +508,8 @@ electivire:{num:466,species:"Electivire",types:["Electric"],genderRatio:{M:0.75,
magmortar:{num:467,species:"Magmortar",types:["Fire"],genderRatio:{M:0.75,F:0.25},baseStats:{hp:75,atk:95,def:67,spa:125,spd:95,spe:83},abilities:{0:"Flame Body",H:"Vital Spirit"},heightm:1.6,weightkg:68,color:"Red",prevo:"magmar",evoLevel:30,eggGroups:["Human-Like"]},
togekiss:{num:468,species:"Togekiss",types:["Fairy","Flying"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:85,atk:50,def:95,spa:120,spd:115,spe:80},abilities:{0:"Hustle",1:"Serene Grace",H:"Super Luck"},heightm:1.5,weightkg:38,color:"White",prevo:"togetic",evoLevel:2,eggGroups:["Flying","Fairy"]},
yanmega:{num:469,species:"Yanmega",types:["Bug","Flying"],baseStats:{hp:86,atk:76,def:86,spa:116,spd:56,spe:95},abilities:{0:"Speed Boost",1:"Tinted Lens",H:"Frisk"},heightm:1.9,weightkg:51.5,color:"Green",prevo:"yanma",evoLevel:2,evoMove:"AncientPower",eggGroups:["Bug"]},
leafeon:{num:470,species:"Leafeon",types:["Grass"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:65,atk:110,def:130,spa:60,spd:65,spe:95},abilities:{0:"Leaf Guard",H:"Chlorophyll"},heightm:1,weightkg:25.5,color:"Green",prevo:"eevee",evoLevel:1,eggGroups:["Field"]},
glaceon:{num:471,species:"Glaceon",types:["Ice"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:65,atk:60,def:110,spa:130,spd:95,spe:65},abilities:{0:"Snow Cloak",H:"Ice Body"},heightm:0.8,weightkg:25.9,color:"Blue",prevo:"eevee",evoLevel:1,eggGroups:["Field"]},
leafeon:{num:470,species:"Leafeon",types:["Grass"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:65,atk:110,def:130,spa:60,spd:65,spe:95},abilities:{0:"Leaf Guard",H:"Chlorophyll"},heightm:1,weightkg:25.5,color:"Green",prevo:"eevee",evoLevel:2,eggGroups:["Field"]},
glaceon:{num:471,species:"Glaceon",types:["Ice"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:65,atk:60,def:110,spa:130,spd:95,spe:65},abilities:{0:"Snow Cloak",H:"Ice Body"},heightm:0.8,weightkg:25.9,color:"Blue",prevo:"eevee",evoLevel:2,eggGroups:["Field"]},
gliscor:{num:472,species:"Gliscor",types:["Ground","Flying"],baseStats:{hp:75,atk:95,def:125,spa:45,spd:75,spe:95},abilities:{0:"Hyper Cutter",1:"Sand Veil",H:"Poison Heal"},heightm:2,weightkg:42.5,color:"Purple",prevo:"gligar",evoLevel:2,eggGroups:["Bug"]},
mamoswine:{num:473,species:"Mamoswine",types:["Ice","Ground"],baseStats:{hp:110,atk:130,def:80,spa:70,spd:60,spe:80},abilities:{0:"Oblivious",1:"Snow Cloak",H:"Thick Fat"},heightm:2.5,weightkg:291,color:"Brown",prevo:"piloswine",evoLevel:34,evoMove:"AncientPower",eggGroups:["Field"]},
porygonz:{num:474,species:"Porygon-Z",types:["Normal"],gender:"N",baseStats:{hp:85,atk:80,def:70,spa:135,spd:75,spe:90},abilities:{0:"Adaptability",1:"Download",H:"Analytic"},heightm:0.9,weightkg:34,color:"Red",prevo:"porygon2",evoLevel:1,eggGroups:["Mineral"]},
@ -735,9 +735,9 @@ froakie:{num:656,species:"Froakie",types:["Water"],genderRatio:{M:0.875,F:0.125}
frogadier:{num:657,species:"Frogadier",types:["Water"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:54,atk:63,def:52,spa:83,spd:56,spe:97},abilities:{0:"Torrent",H:"Protean"},heightm:0.6,weightkg:10.9,color:"Blue",prevo:"froakie",evos:["greninja"],evoLevel:16,eggGroups:["Water 1"]},
greninja:{num:658,species:"Greninja",types:["Water","Dark"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:72,atk:95,def:67,spa:103,spd:71,spe:122},abilities:{0:"Torrent",H:"Protean"},heightm:1.5,weightkg:40,color:"Blue",prevo:"frogadier",evoLevel:36,eggGroups:["Water 1"]},
bunnelby:{num:659,species:"Bunnelby",types:["Normal"],baseStats:{hp:38,atk:36,def:38,spa:32,spd:36,spe:57},abilities:{0:"Pickup",1:"Cheek Pouch",H:"Huge Power"},heightm:0.4,weightkg:5,color:"Brown",evos:["diggersby"],eggGroups:["Field"]},
diggersby:{num:660,species:"Diggersby",types:["Normal","Ground"],baseStats:{hp:85,atk:56,def:77,spa:50,spd:77,spe:78},abilities:{0:"Pickup",1:"Cheek Pouch",H:"Huge Power"},heightm:0,weightkg:0,color:"Brown",prevo:"bunnelby",evoLevel:20,eggGroups:["Field"]},
diggersby:{num:660,species:"Diggersby",types:["Normal","Ground"],baseStats:{hp:85,atk:56,def:77,spa:50,spd:77,spe:78},abilities:{0:"Pickup",1:"Cheek Pouch",H:"Huge Power"},heightm:1,weightkg:42.4,color:"Brown",prevo:"bunnelby",evoLevel:20,eggGroups:["Field"]},
fletchling:{num:661,species:"Fletchling",types:["Normal","Flying"],baseStats:{hp:45,atk:50,def:43,spa:40,spd:38,spe:62},abilities:{0:"Big Pecks",H:"Gale Wings"},heightm:0.3,weightkg:1.7,color:"Red",evos:["fletchinder"],eggGroups:["Flying"]},
fletchinder:{num:662,species:"Fletchinder",types:["Fire","Flying"],baseStats:{hp:62,atk:73,def:55,spa:56,spd:52,spe:84},abilities:{0:"Flame Body",H:"Gale Wings"},heightm:0,weightkg:0,color:"Red",prevo:"fletchling",evos:["talonflame"],evoLevel:17,eggGroups:["Flying"]},
fletchinder:{num:662,species:"Fletchinder",types:["Fire","Flying"],baseStats:{hp:62,atk:73,def:55,spa:56,spd:52,spe:84},abilities:{0:"Flame Body",H:"Gale Wings"},heightm:0.7,weightkg:16,color:"Red",prevo:"fletchling",evos:["talonflame"],evoLevel:17,eggGroups:["Flying"]},
talonflame:{num:663,species:"Talonflame",types:["Fire","Flying"],baseStats:{hp:78,atk:81,def:71,spa:74,spd:69,spe:126},abilities:{0:"Flame Body",H:"Gale Wings"},heightm:1.2,weightkg:24.5,color:"Red",prevo:"fletchinder",evoLevel:35,eggGroups:["Flying"]},
scatterbug:{num:664,species:"Scatterbug",types:["Bug"],baseStats:{hp:38,atk:35,def:40,spa:27,spd:25,spe:35},abilities:{0:"Shield Dust",1:"Compound Eyes",H:"Friend Guard"},heightm:0.3,weightkg:2.5,color:"Black",evos:["spewpa"],eggGroups:["Bug"]},
spewpa:{num:665,species:"Spewpa",types:["Bug"],baseStats:{hp:45,atk:22,def:60,spa:27,spd:30,spe:29},abilities:{0:"Shed Skin",H:"Friend Guard"},heightm:0.3,weightkg:8.4,color:"Black",prevo:"scatterbug",evos:["vivillon"],evoLevel:9,eggGroups:["Bug"]},
@ -758,8 +758,8 @@ meowstic:{num:678,species:"Meowstic",baseForme:"M",types:["Psychic"],gender:"M",
meowsticf:{num:678,species:"Meowstic-F",baseSpecies:"Meowstic",forme:"F",formeLetter:"F",types:["Psychic"],gender:"F",baseStats:{hp:74,atk:48,def:76,spa:83,spd:81,spe:104},abilities:{0:"Keen Eye",1:"Infiltrator",H:"Competitive"},heightm:0.6,weightkg:8.5,color:"White",prevo:"espurr",evoLevel:25,eggGroups:["Field"]},
honedge:{num:679,species:"Honedge",types:["Steel","Ghost"],baseStats:{hp:45,atk:80,def:100,spa:35,spd:37,spe:28},abilities:{0:"No Guard"},heightm:0.8,weightkg:2,color:"Brown",evos:["doublade"],eggGroups:["Mineral"]},
doublade:{num:680,species:"Doublade",types:["Steel","Ghost"],baseStats:{hp:59,atk:110,def:150,spa:45,spd:49,spe:35},abilities:{0:"No Guard"},heightm:0.8,weightkg:4.5,color:"Brown",prevo:"honedge",evos:["aegislash"],evoLevel:35,eggGroups:["Mineral"]},
aegislash:{num:681,species:"Aegislash",types:["Steel","Ghost"],baseStats:{hp:60,atk:50,def:150,spa:50,spd:150,spe:60},abilities:{0:"Stance Change"},heightm:1.7,weightkg:52,color:"Brown",prevo:"doublade",evoLevel:35,eggGroups:["Mineral"],otherFormes:["aegislashblade"]},
aegislashblade:{num:681,species:"Aegislash-Blade",baseSpecies:"Aegislash",forme:"Blade",formeLetter:"B",types:["Steel","Ghost"],baseStats:{hp:60,atk:150,def:50,spa:150,spd:50,spe:60},abilities:{0:"Stance Change"},heightm:0,weightkg:0,color:"Brown",prevo:"doublade",evoLevel:35,eggGroups:["Mineral"]},
aegislash:{num:681,species:"Aegislash",types:["Steel","Ghost"],baseStats:{hp:60,atk:50,def:150,spa:50,spd:150,spe:60},abilities:{0:"Stance Change"},heightm:1.7,weightkg:53,color:"Brown",prevo:"doublade",evoLevel:35,eggGroups:["Mineral"],otherFormes:["aegislashblade"]},
aegislashblade:{num:681,species:"Aegislash-Blade",baseSpecies:"Aegislash",forme:"Blade",formeLetter:"B",types:["Steel","Ghost"],baseStats:{hp:60,atk:150,def:50,spa:150,spd:50,spe:60},abilities:{0:"Stance Change"},heightm:1.7,weightkg:53,color:"Brown",prevo:"doublade",evoLevel:35,eggGroups:["Mineral"]},
spritzee:{num:682,species:"Spritzee",types:["Fairy"],baseStats:{hp:78,atk:52,def:60,spa:63,spd:65,spe:23},abilities:{0:"Healer",H:"Aroma Veil"},heightm:0.2,weightkg:0.5,color:"Pink",evos:["aromatisse"],eggGroups:["Fairy"]},
aromatisse:{num:683,species:"Aromatisse",types:["Fairy"],baseStats:{hp:101,atk:72,def:72,spa:99,spd:89,spe:29},abilities:{0:"Healer",H:"Aroma Veil"},heightm:0.8,weightkg:15.5,color:"Pink",prevo:"spritzee",evoLevel:1,eggGroups:["Fairy"]},
swirlix:{num:684,species:"Swirlix",types:["Fairy"],baseStats:{hp:62,atk:48,def:66,spa:59,spd:57,spe:49},abilities:{0:"Sweet Veil",H:"Unburden"},heightm:0.4,weightkg:3.5,color:"White",evos:["slurpuff"],eggGroups:["Fairy"]},
@ -778,7 +778,7 @@ tyrunt:{num:696,species:"Tyrunt",types:["Rock","Dragon"],genderRatio:{M:0.875,F:
tyrantrum:{num:697,species:"Tyrantrum",types:["Rock","Dragon"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:82,atk:121,def:119,spa:69,spd:59,spe:71},abilities:{0:"Strong Jaw",H:"Rock Head"},heightm:2.5,weightkg:270,color:"Red",prevo:"tyrunt",evoLevel:39,eggGroups:["Monster","Dragon"]},
amaura:{num:698,species:"Amaura",types:["Rock","Ice"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:77,atk:59,def:50,spa:67,spd:63,spe:46},abilities:{0:"Refrigerate",H:"Snow Warning"},heightm:1.3,weightkg:25.2,color:"Blue",evos:["aurorus"],eggGroups:["Monster"]},
aurorus:{num:699,species:"Aurorus",types:["Rock","Ice"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:123,atk:77,def:72,spa:99,spd:92,spe:58},abilities:{0:"Refrigerate",H:"Snow Warning"},heightm:2.7,weightkg:225,color:"Blue",prevo:"amaura",evoLevel:39,eggGroups:["Monster"]},
sylveon:{num:700,species:"Sylveon",types:["Fairy"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:95,atk:65,def:65,spa:110,spd:130,spe:60},abilities:{0:"Cute Charm",H:"Pixilate"},heightm:1,weightkg:23.5,color:"Pink",prevo:"eevee",eggGroups:["Field"]},
sylveon:{num:700,species:"Sylveon",types:["Fairy"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:95,atk:65,def:65,spa:110,spd:130,spe:60},abilities:{0:"Cute Charm",H:"Pixilate"},heightm:1,weightkg:23.5,color:"Pink",prevo:"eevee",evoLevel:2,eggGroups:["Field"]},
hawlucha:{num:701,species:"Hawlucha",types:["Fighting","Flying"],baseStats:{hp:78,atk:92,def:75,spa:74,spd:63,spe:118},abilities:{0:"Limber",1:"Unburden",H:"Mold Breaker"},heightm:0.8,weightkg:21.5,color:"Green",eggGroups:["Human-Like"]},
dedenne:{num:702,species:"Dedenne",types:["Electric","Fairy"],baseStats:{hp:67,atk:58,def:57,spa:81,spd:67,spe:101},abilities:{0:"Cheek Pouch",1:"Pickup",H:"Plus"},heightm:0.2,weightkg:2.2,color:"Yellow",eggGroups:["Field","Fairy"]},
carbink:{num:703,species:"Carbink",types:["Rock","Fairy"],gender:"N",baseStats:{hp:50,atk:50,def:150,spa:50,spd:150,spe:50},abilities:{0:"Clear Body",H:"Sturdy"},heightm:0.3,weightkg:5.7,color:"Gray",eggGroups:["Fairy","Mineral"]},
@ -788,14 +788,14 @@ goodra:{num:706,species:"Goodra",types:["Dragon"],baseStats:{hp:90,atk:100,def:7
klefki:{num:707,species:"Klefki",types:["Steel","Fairy"],baseStats:{hp:57,atk:80,def:91,spa:80,spd:87,spe:75},abilities:{0:"Prankster",H:"Magician"},heightm:0.2,weightkg:3,color:"Gray",eggGroups:["Mineral"]},
phantump:{num:708,species:"Phantump",types:["Ghost","Grass"],baseStats:{hp:43,atk:70,def:48,spa:50,spd:60,spe:38},abilities:{0:"Natural Cure",1:"Frisk",H:"Harvest"},heightm:0.4,weightkg:7,color:"Brown",evos:["trevenant"],eggGroups:["Grass","Amorphous"]},
trevenant:{num:709,species:"Trevenant",types:["Ghost","Grass"],baseStats:{hp:85,atk:110,def:76,spa:65,spd:82,spe:56},abilities:{0:"Natural Cure",1:"Frisk",H:"Harvest"},heightm:1.5,weightkg:71,color:"Brown",prevo:"phantump",evoLevel:1,eggGroups:["Grass","Amorphous"]},
pumpkaboo:{num:710,species:"Pumpkaboo",baseForme:"Average",types:["Ghost","Grass"],baseStats:{hp:49,atk:66,def:70,spa:44,spd:55,spe:51},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0,weightkg:0,color:"Brown",evos:["gourgeist"],eggGroups:["Amorphous"],otherFormes:["pumpkaboosmall","pumpkaboolarge","pumpkaboosuper"]},
pumpkaboosmall:{num:710,species:"Pumpkaboo-Small",baseSpecies:"Pumpkaboo",forme:"Small",formeLetter:"S",types:["Ghost","Grass"],baseStats:{hp:44,atk:66,def:70,spa:44,spd:55,spe:56},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0,weightkg:0,color:"Brown",evos:["gourgeistsmall"],eggGroups:["Amorphous"]},
pumpkaboolarge:{num:710,species:"Pumpkaboo-Large",baseSpecies:"Pumpkaboo",forme:"Large",formeLetter:"L",types:["Ghost","Grass"],baseStats:{hp:54,atk:66,def:70,spa:44,spd:55,spe:46},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0,weightkg:0,color:"Brown",evos:["gourgeistlarge"],eggGroups:["Amorphous"]},
pumpkaboosuper:{num:710,species:"Pumpkaboo-Super",baseSpecies:"Pumpkaboo",forme:"Super",formeLetter:"S",types:["Ghost","Grass"],baseStats:{hp:59,atk:66,def:70,spa:44,spd:55,spe:41},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0,weightkg:0,color:"Brown",evos:["gourgeistsuper"],eggGroups:["Amorphous"]},
gourgeist:{num:711,species:"Gourgeist",baseForme:"Average",types:["Ghost","Grass"],baseStats:{hp:65,atk:90,def:122,spa:58,spd:75,spe:84},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0,weightkg:0,color:"Brown",prevo:"pumpkaboo",evoLevel:1,eggGroups:["Amorphous"],otherFormes:["gourgeistsmall","gourgeistlarge","gourgeistsuper"]},
gourgeistsmall:{num:711,species:"Gourgeist-Small",baseSpecies:"Gourgeist",forme:"Small",formeLetter:"S",types:["Ghost","Grass"],baseStats:{hp:55,atk:85,def:122,spa:58,spd:75,spe:99},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0,weightkg:0,color:"Brown",prevo:"pumpkaboosmall",evoLevel:1,eggGroups:["Amorphous"]},
gourgeistlarge:{num:711,species:"Gourgeist-Large",baseSpecies:"Gourgeist",forme:"Large",formeLetter:"L",types:["Ghost","Grass"],baseStats:{hp:75,atk:95,def:122,spa:58,spd:75,spe:69},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0,weightkg:0,color:"Brown",prevo:"pumpkaboolarge",evoLevel:1,eggGroups:["Amorphous"]},
gourgeistsuper:{num:711,species:"Gourgeist-Super",baseSpecies:"Gourgeist",forme:"Super",formeLetter:"S",types:["Ghost","Grass"],baseStats:{hp:85,atk:100,def:122,spa:58,spd:75,spe:54},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0,weightkg:0,color:"Brown",prevo:"pumpkaboosuper",evoLevel:1,eggGroups:["Amorphous"]},
pumpkaboo:{num:710,species:"Pumpkaboo",baseForme:"Average",types:["Ghost","Grass"],baseStats:{hp:49,atk:66,def:70,spa:44,spd:55,spe:51},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0.4,weightkg:5,color:"Brown",evos:["gourgeist"],eggGroups:["Amorphous"],otherFormes:["pumpkaboosmall","pumpkaboolarge","pumpkaboosuper"]},
pumpkaboosmall:{num:710,species:"Pumpkaboo-Small",baseSpecies:"Pumpkaboo",forme:"Small",formeLetter:"S",types:["Ghost","Grass"],baseStats:{hp:44,atk:66,def:70,spa:44,spd:55,spe:56},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0.3,weightkg:3.5,color:"Brown",evos:["gourgeistsmall"],eggGroups:["Amorphous"]},
pumpkaboolarge:{num:710,species:"Pumpkaboo-Large",baseSpecies:"Pumpkaboo",forme:"Large",formeLetter:"L",types:["Ghost","Grass"],baseStats:{hp:54,atk:66,def:70,spa:44,spd:55,spe:46},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0.5,weightkg:7.5,color:"Brown",evos:["gourgeistlarge"],eggGroups:["Amorphous"]},
pumpkaboosuper:{num:710,species:"Pumpkaboo-Super",baseSpecies:"Pumpkaboo",forme:"Super",formeLetter:"S",types:["Ghost","Grass"],baseStats:{hp:59,atk:66,def:70,spa:44,spd:55,spe:41},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0.8,weightkg:15,color:"Brown",evos:["gourgeistsuper"],eggGroups:["Amorphous"]},
gourgeist:{num:711,species:"Gourgeist",baseForme:"Average",types:["Ghost","Grass"],baseStats:{hp:65,atk:90,def:122,spa:58,spd:75,spe:84},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0.9,weightkg:12.5,color:"Brown",prevo:"pumpkaboo",evoLevel:1,eggGroups:["Amorphous"],otherFormes:["gourgeistsmall","gourgeistlarge","gourgeistsuper"]},
gourgeistsmall:{num:711,species:"Gourgeist-Small",baseSpecies:"Gourgeist",forme:"Small",formeLetter:"S",types:["Ghost","Grass"],baseStats:{hp:55,atk:85,def:122,spa:58,spd:75,spe:99},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:0.7,weightkg:9.5,color:"Brown",prevo:"pumpkaboosmall",evoLevel:1,eggGroups:["Amorphous"]},
gourgeistlarge:{num:711,species:"Gourgeist-Large",baseSpecies:"Gourgeist",forme:"Large",formeLetter:"L",types:["Ghost","Grass"],baseStats:{hp:75,atk:95,def:122,spa:58,spd:75,spe:69},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:1.1,weightkg:14,color:"Brown",prevo:"pumpkaboolarge",evoLevel:1,eggGroups:["Amorphous"]},
gourgeistsuper:{num:711,species:"Gourgeist-Super",baseSpecies:"Gourgeist",forme:"Super",formeLetter:"S",types:["Ghost","Grass"],baseStats:{hp:85,atk:100,def:122,spa:58,spd:75,spe:54},abilities:{0:"Pickup",1:"Frisk",H:"Insomnia"},heightm:1.7,weightkg:39,color:"Brown",prevo:"pumpkaboosuper",evoLevel:1,eggGroups:["Amorphous"]},
bergmite:{num:712,species:"Bergmite",types:["Ice"],baseStats:{hp:55,atk:69,def:85,spa:32,spd:35,spe:28},abilities:{0:"Own Tempo",1:"Ice Body",H:"Sturdy"},heightm:1,weightkg:99.5,color:"Blue",evos:["avalugg"],eggGroups:["Monster"]},
avalugg:{num:713,species:"Avalugg",types:["Ice"],baseStats:{hp:95,atk:117,def:184,spa:44,spd:46,spe:28},abilities:{0:"Own Tempo",1:"Ice Body",H:"Sturdy"},heightm:2,weightkg:505,color:"Blue",prevo:"bergmite",evoLevel:40,eggGroups:["Monster"]},
noibat:{num:714,species:"Noibat",types:["Flying","Dragon"],baseStats:{hp:40,atk:30,def:35,spa:45,spd:40,spe:55},abilities:{0:"Frisk",1:"Infiltrator",H:"Telepathy"},heightm:0.5,weightkg:8,color:"Purple",evos:["noivern"],eggGroups:["Flying"]},