diff --git a/battle-engine.js b/battle-engine.js
index 8929e5fe31..950b7e8570 100644
--- a/battle-engine.js
+++ b/battle-engine.js
@@ -297,10 +297,10 @@ var BattlePokemon = (function() {
hpPowerX += i * (Math.floor(this.set.ivs[s] / 2) % 2);
i *= 2;
}
- // Support for gen 6 metagame mods
- var maxTypes = (this.battle.gen && this.battle.gen === 6)? 16 : 15;
+ // Support for gen 5 and gen 6
+ var maxTypes = (this.battle.gen && this.battle.gen < 6)? 15 : 16;
this.hpType = hpTypes[Math.floor(hpTypeX * maxTypes / 63)];
- this.hpPower = Math.floor(hpPowerX * 40 / 63) + 30;
+ this.hpPower = (this.battle.gen && this.battle.gen < 6)? Math.floor(hpPowerX * 40 / 63) + 30 : 60;
}
this.boosts = {
@@ -1887,10 +1887,17 @@ var Battle = (function() {
this.effect = statuses[i].status;
this.effectData = statuses[i].statusData;
this.effectData.target = thing;
- this.event = {id: eventid, target: target, source: source, effect: effect};
+
+ this.event = {id: eventid, target: target, source: source, effect: effect, modifier: 1};
+
this.eventDepth++;
returnVal = statuses[i].callback.apply(this, args);
this.eventDepth--;
+
+ if (this.event.modifier !== 1 && typeof returnVal === 'number') {
+ returnVal = this.modify(returnVal, this.event.modifier);
+ }
+
this.effect = parentEffect;
this.effectData = parentEffectData;
this.event = parentEvent;
@@ -2545,7 +2552,23 @@ var Battle = (function() {
if (nextMod.length) nextMod = Math.floor(nextMod[0] * 4096 / nextMod[1]);
else nextMod = Math.floor(nextMod * 4096);
return ((previousMod * nextMod + 2048) >> 12) / 4096; // M'' = ((M * M') + 0x800) >> 12
- }
+ };
+ Battle.prototype.chainModify = function(numerator, denominator) {
+ var previousMod = Math.floor(this.event.modifier * 4096);
+
+ if (numerator.length) {
+ denominator = numerator[1];
+ numerator = numerator[0];
+ }
+ var nextMod = 0;
+ if (this.event.ceilModifier) {
+ nextMod = Math.ceil(numerator * 4096 / (denominator||1));
+ } else {
+ nextMod = Math.floor(numerator * 4096 / (denominator||1));
+ }
+
+ this.event.modifier = ((previousMod * nextMod + 2048) >> 12) / 4096;
+ };
Battle.prototype.modify = function(value, numerator, denominator) {
// You can also use:
// modify(value, [numerator, denominator])
diff --git a/commands.js b/commands.js
index 1d0df971a3..8dbda26ef1 100644
--- a/commands.js
+++ b/commands.js
@@ -400,7 +400,7 @@ var commands = exports.commands = {
},
roomauth: function(target, room, user, connection) {
- if (!room.auth) return this.sendReply("/roomauth - This room isn't designed for per-room moderation and therefor has no auth list.");
+ if (!room.auth) return this.sendReply("/roomauth - This room isn't designed for per-room moderation and therefore has no auth list.");
var buffer = [];
for (var u in room.auth) {
buffer.push(room.auth[u] + u);
@@ -541,6 +541,7 @@ var commands = exports.commands = {
targetUser.unmute(room.id);
},
+ l: 'lock',
ipmute: 'lock',
lock: function(target, room, user) {
if (!target) return this.parse('/help lock');
@@ -796,6 +797,28 @@ var commands = exports.commands = {
this.logModCommand(user.name+' declared '+target);
},
+ gdeclare: 'globaldeclare',
+ globaldeclare: function(target, room, user) {
+ if (!target) return this.parse('/help globaldeclare');
+ if (!this.can('gdeclare')) return false;
+
+ for (var id in Rooms.rooms) {
+ if (id !== 'global') Rooms.rooms[id].addRaw('
'+target+'
');
+ }
+ this.logModCommand(user.name+' globally declared '+target);
+ },
+
+ cdeclare: 'chatdeclare',
+ chatdeclare: function(target, room, user) {
+ if (!target) return this.parse('/help chatdeclare');
+ if (!this.can('gdeclare')) return false;
+
+ for (var id in Rooms.rooms) {
+ if (id !== 'global') if (Rooms.rooms[id].type !== 'battle') Rooms.rooms[id].addRaw(''+target+'
');
+ }
+ this.logModCommand(user.name+' globally declared (chat level) '+target);
+ },
+
wall: 'announce',
announce: function(target, room, user) {
if (!target) return this.parse('/help announce');
diff --git a/config/commands.js b/config/commands.js
index 419e131265..830c2ff865 100644
--- a/config/commands.js
+++ b/config/commands.js
@@ -793,6 +793,10 @@ var commands = exports.commands = {
matched = true;
buffer += 'Staff FAQ
';
}
+ if (target === 'all' || target === 'autoconfirmed') {
+ matched = true;
+ buffer += 'A user is autoconfirmed when they have won at least one rated battle and has been registered for a week or longer.
';
+ }
if (!matched) {
return this.sendReply('The FAQ entry "'+target+'" was not found. Try /faq for general help.');
}
@@ -1255,11 +1259,19 @@ var commands = exports.commands = {
matched = true;
this.sendReply('/forcetie - Forces the current match to tie. Requires: & ~');
}
- if (target === '&' || target === 'declare' ) {
+ if (target === '&' || target === 'declare') {
matched = true;
this.sendReply('/declare [message] - Anonymously announces a message. Requires: & ~');
}
- if (target === '%' || target === 'announce' || target === 'wall' ) {
+ if (target === '~' || target === 'chatdeclare' || target === 'cdeclare') {
+ matched = true;
+ this.sendReply('/cdeclare [message] - Anonymously announces a message to all chatrooms on the server. Requires: ~');
+ }
+ if (target === '~' || target === 'globaldeclare' || target === 'gdeclare') {
+ matched = true;
+ this.sendReply('/globaldeclare [message] - Anonymously announces a message to every room on the server. Requires: ~');
+ }
+ if (target === '%' || target === 'announce' || target === 'wall') {
matched = true;
this.sendReply('/announce OR /wall [message] - Makes an announcement. Requires: % @ & ~');
}
diff --git a/config/config-example.js b/config/config-example.js
index 648ea65160..48dc503cb0 100644
--- a/config/config-example.js
+++ b/config/config-example.js
@@ -188,6 +188,7 @@ exports.groups = {
name: "Administrator",
root: true,
globalonly: true,
+ gdeclare: true,
rank: 6
},
'&': {
diff --git a/config/formats.js b/config/formats.js
index db566d27e5..9dcfc922e8 100644
--- a/config/formats.js
+++ b/config/formats.js
@@ -10,6 +10,7 @@ exports.Formats = [
name: "Random Battle",
section: "Singles",
+ mod: 'gen5',
team: 'random',
ruleset: ['PotD', 'Pokemon', 'Sleep Clause Mod', 'HP Percentage Mod']
},
@@ -17,6 +18,7 @@ exports.Formats = [
name: "Unrated Random Battle",
section: "Singles",
+ mod: 'gen5',
team: 'random',
challengeShow: false,
rated: false,
@@ -26,6 +28,7 @@ exports.Formats = [
name: "OU",
section: "Singles",
+ mod: 'gen5',
ruleset: ['Pokemon', 'Standard', 'Evasion Abilities Clause', 'Team Preview'],
banlist: ['Uber', 'Drizzle ++ Swift Swim', 'Soul Dew']
},
@@ -33,6 +36,7 @@ exports.Formats = [
name: "OU (No Stealth Rock)",
section: "Singles",
+ mod: 'gen5',
ruleset: ['Pokemon', 'Standard', 'Evasion Abilities Clause', 'Team Preview'],
banlist: ['Uber', 'Drizzle ++ Swift Swim', 'Soul Dew', 'Stealth Rock']
},
@@ -40,13 +44,15 @@ exports.Formats = [
name: "Ubers",
section: "Singles",
+ mod: 'gen5',
ruleset: ['Pokemon', 'Team Preview', 'Standard Ubers'],
banlist: []
},
{
name: "UU",
section: "Singles",
-
+
+ mod: 'gen5',
searchShow: false,
ruleset: ['OU'],
banlist: ['OU', 'BL', 'Drought', 'Sand Stream']
@@ -55,6 +61,7 @@ exports.Formats = [
name: "UU (current)",
section: "Singles",
+ mod: 'gen5',
ruleset: ['OU'],
banlist: ['OU', 'BL', 'Drought', 'Sand Stream']
},
@@ -62,6 +69,7 @@ exports.Formats = [
name: "RU",
section: "Singles",
+ mod: 'gen5',
ruleset: ['UU'],
banlist: ['UU', 'BL2', 'Shell Smash + Baton Pass', 'Snow Warning']
},
@@ -69,6 +77,7 @@ exports.Formats = [
name: "NU",
section: "Singles",
+ mod: 'gen5',
searchShow: false,
ruleset: ['RU'],
banlist: ['RU','BL3']
@@ -77,6 +86,7 @@ exports.Formats = [
name: "NU (current)",
section: "Singles",
+ mod: 'gen5',
ruleset: ['RU'],
banlist: ['RU','BL3']
},
@@ -84,6 +94,7 @@ exports.Formats = [
name: "LC",
section: "Singles",
+ mod: 'gen5',
maxLevel: 5,
ruleset: ['Pokemon', 'Standard', 'Team Preview', 'Little Cup'],
banlist: ['Sonicboom', 'Dragon Rage', 'Berry Juice', 'Carvanha', 'Meditite', 'Gligar', 'Scyther', 'Sneasel', 'Tangela', 'Vulpix', 'Yanma', 'Soul Dew']
@@ -92,6 +103,7 @@ exports.Formats = [
name: "CAP",
section: "Singles",
+ mod: 'gen5',
ruleset: ['CAP Pokemon', 'Standard', 'Evasion Abilities Clause', 'Team Preview'],
banlist: ['Uber', 'Drizzle ++ Swift Swim', 'Soul Dew']
},
@@ -99,6 +111,7 @@ exports.Formats = [
name: "GBU Singles",
section: "Singles",
+ mod: 'gen5',
validateSet: function(set) {
if (!set.level || set.level >= 50) set.forcedLevel = 50;
return [];
@@ -127,6 +140,7 @@ exports.Formats = [
name: "Global Showdown",
section: "Singles",
+ mod: 'gen5',
validateSet: function(set) {
if (!set.level || set.level >= 50) set.forcedLevel = 50;
return [];
@@ -145,6 +159,7 @@ exports.Formats = [
name: "Custom Game",
section: "Singles",
+ mod: 'gen5',
searchShow: false,
canUseRandomTeam: true,
debug: true,
@@ -157,6 +172,7 @@ exports.Formats = [
name: "Custom Game (no Team Preview)",
section: "Singles",
+ mod: 'gen5',
searchShow: false,
canUseRandomTeam: true,
debug: true,
@@ -173,6 +189,7 @@ exports.Formats = [
name: "Doubles Random Battle (dev)",
section: 'Doubles',
+ mod: 'gen5',
gameType: 'doubles',
team: 'random',
searchShow: false,
@@ -185,6 +202,7 @@ exports.Formats = [
name: "Smogon Doubles",
section: 'Doubles',
+ mod: 'gen5',
gameType: 'doubles',
ruleset: ['Pokemon', 'Standard', 'Evasion Abilities Clause', 'Team Preview'],
banlist: ['Unreleased', 'Illegal', 'Dark Void', 'Soul Dew', 'Sky Drop',
@@ -207,6 +225,7 @@ exports.Formats = [
name: "Smogon Doubles Ubers",
section: 'Doubles',
+ mod: 'gen5',
gameType: 'doubles',
searchShow: false,
ruleset: ['Pokemon', 'Standard', 'Evasion Abilities Clause', 'Team Preview'],
@@ -216,6 +235,7 @@ exports.Formats = [
name: "Doubles VGC 2013",
section: 'Doubles',
+ mod: 'gen5',
gameType: 'doubles',
onBegin: function() {
this.debug('cutting down to 4');
@@ -259,6 +279,7 @@ exports.Formats = [
name: "Doubles Custom Game",
section: 'Doubles',
+ mod: 'gen5',
gameType: 'doubles',
searchShow: false,
canUseRandomTeam: true,
@@ -272,20 +293,28 @@ exports.Formats = [
name: "Doubles Challenge Cup",
section: 'Doubles',
+ mod: 'gen5',
gameType: 'doubles',
team: 'randomCC',
searchShow: false,
- debug: true,
ruleset: ['Pokemon', 'HP Percentage Mod']
},
// Other Metagames
///////////////////////////////////////////////////////////////////
+ {
+ name: "Generation 5.5",
+ section: "OM of the Month",
+
+ ruleset: ['Pokemon', 'HP Percentage Mod'],
+ banlist: ['Unreleased', 'Illegal', 'Uber']
+ },
{
name: "Ability Exchange",
section: "OM of the Month",
+ mod: 'gen5',
ruleset: ['Pokemon', 'Ability Exchange Pokemon', 'Sleep Clause Mod', 'Species Clause', 'OHKO Clause', 'Moody Clause', 'Evasion Moves Clause', 'HP Percentage Mod', 'Team Preview'],
banlist: ['Unreleased', 'Illegal', 'Ignore Illegal Abilities', 'Drizzle ++ Swift Swim', 'Soul Dew', 'Drought ++ Chlorophyll', 'Sand Stream ++ Sand Rush',
'Mewtwo', 'Lugia', 'Ho-Oh', 'Blaziken', 'Kyogre', 'Groudon', 'Rayquaza', 'Deoxys', 'Deoxys-Attack', 'Deoxys-Defense', 'Deoxys-Speed', 'Dialga', 'Palkia', 'Giratina', 'Giratina-Origin', 'Manaphy', 'Darkrai', 'Shaymin-Sky',
@@ -297,6 +326,7 @@ exports.Formats = [
name: "[Seasonal] Octoberfest",
section: "OM of the Month",
+ mod: 'gen5',
team: 'randomSeasonalOF',
ruleset: ['HP Percentage Mod', 'Sleep Clause Mod'],
onModifyMove: function(move) {
@@ -448,6 +478,7 @@ exports.Formats = [
name: "Challenge Cup",
section: "Other Metagames",
+ mod: 'gen5',
team: 'randomCC',
ruleset: ['Pokemon', 'HP Percentage Mod']
},
@@ -455,6 +486,7 @@ exports.Formats = [
name: "Challenge Cup 1-vs-1",
section: "Other Metagames",
+ mod: 'gen5',
team: 'randomCC',
ruleset: ['Pokemon', 'Team Preview 1v1', 'HP Percentage Mod'],
onBegin: function() {
@@ -469,6 +501,7 @@ exports.Formats = [
name: "Hackmons",
section: "Other Metagames",
+ mod: 'gen5',
ruleset: ['Pokemon'],
banlist: []
},
@@ -476,6 +509,7 @@ exports.Formats = [
name: "Balanced Hackmons",
section: "Other Metagames",
+ mod: 'gen5',
ruleset: ['Pokemon', 'OHKO Clause'],
banlist: ['Wonder Guard', 'Pure Power', 'Huge Power', 'Shadow Tag', 'Arena Trap']
},
@@ -492,6 +526,7 @@ exports.Formats = [
name: "OU Monotype",
section: "Other Metagames",
+ mod: 'gen5',
ruleset: ['Pokemon', 'Standard', 'Same Type Clause', 'Evasion Abilities Clause', 'Team Preview'],
banlist: ['Uber', 'Drizzle ++ Swift Swim', 'Soul Dew']
},
@@ -499,6 +534,7 @@ exports.Formats = [
name: "Glitchmons",
section: "Other Metagames",
+ mod: 'gen5',
searchShow: false,
ruleset: ['Pokemon', 'Team Preview', 'HP Percentage Mod'],
banlist: ['Illegal', 'Unreleased'],
@@ -508,6 +544,7 @@ exports.Formats = [
name: "LC Ubers",
section: "Other Metagames",
+ mod: 'gen5',
maxLevel: 5,
searchShow: false,
ruleset: ['Pokemon', 'Standard', 'Team Preview', 'Little Cup'],
@@ -517,6 +554,7 @@ exports.Formats = [
name: "LC UU",
section: "Other Metagames",
+ mod: 'gen5',
maxLevel: 5,
searchShow: false,
ruleset: ['LC'],
@@ -526,6 +564,7 @@ exports.Formats = [
name: "Dream World",
section: "Other Metagames",
+ mod: 'gen5',
searchShow: false,
ruleset: ['Pokemon', 'Standard DW', 'Team Preview'],
banlist: []
@@ -542,6 +581,7 @@ exports.Formats = [
name: "1v1",
section: 'Other Metagames',
+ mod: 'gen5',
onBegin: function() {
this.p1.pokemon = this.p1.pokemon.slice(0,1);
this.p1.pokemonLeft = this.p1.pokemon.length;
@@ -575,6 +615,7 @@ exports.Formats = [
name: "PU",
section: "Other Metagames",
+ mod: 'gen5',
searchShow: false,
ruleset: ['NU'],
banlist: ["Charizard", "Wartortle", "Kadabra", "Golem", "Haunter", "Exeggutor", "Weezing", "Kangaskhan", "Pinsir", "Lapras", "Ampharos", "Misdreavus", "Piloswine", "Miltank", "Ludicolo", "Swellow", "Gardevoir", "Ninjask", "Torkoal", "Cacturne", "Altaria", "Armaldo", "Gorebyss", "Regirock", "Regice", "Bastiodon", "Floatzel", "Drifblim", "Skuntank", "Lickilicky", "Probopass", "Rotom-Fan", "Samurott", "Musharna", "Gurdurr", "Sawk", "Carracosta", "Garbodor", "Sawsbuck", "Alomomola", "Golurk", "Braviary", "Electabuzz", "Electrode", "Liepard", "Tangela", "Eelektross", "Ditto", "Seismitoad", "Zangoose", "Roselia", "Serperior", "Metang", "Tauros", "Cradily", "Primeape", "Scolipede", "Jynx", "Basculin", "Gigalith", "Camerupt", "Golbat"]
@@ -583,6 +624,7 @@ exports.Formats = [
name: "STABmons",
section: "Other Metagames",
+ mod: 'gen5',
ruleset: ['Pokemon', 'Standard', 'Evasion Abilities Clause', 'Team Preview'],
banlist: ['Drizzle ++ Swift Swim', 'Soul Dew', 'Soul Dew',
'Mewtwo', 'Lugia', 'Ho-Oh', 'Blaziken', 'Kyogre', 'Groudon', 'Rayquaza', 'Deoxys', 'Deoxys-Attack', 'Dialga', 'Palkia', 'Giratina', 'Giratina-Origin', 'Manaphy', 'Shaymin-Sky',
@@ -594,6 +636,7 @@ exports.Formats = [
name: "Budgetmons",
section: "Other Metagames",
+ mod: 'gen5',
searchShow: false,
ruleset: ['OU'],
banlist: [],
diff --git a/data/abilities.js b/data/abilities.js
index da384e5404..110f8f200d 100644
--- a/data/abilities.js
+++ b/data/abilities.js
@@ -64,6 +64,20 @@ exports.BattleAbilities = {
rating: 3,
num: 106
},
+ "aerilate": {
+ desc: "Turn all of this Pokemon's Normal-typed attacks into Flying-typed.",
+ shortDesc: "This Pokemon's Normal moves become Flying.",
+ onModifyMove: function(move) {
+ if (move.type === 'Normal') {
+ move.type = 'Flying';
+ }
+ },
+ id: "aerilate",
+ name: "Aerilate",
+ rating: 3,
+ num: -6,
+ gen: 6
+ },
"airlock": {
desc: "While this Pokemon is active, all weather conditions and their effects are disabled.",
shortDesc: "While this Pokemon is active, all weather conditions and their effects are disabled.",
@@ -147,6 +161,16 @@ exports.BattleAbilities = {
rating: 5,
num: 71
},
+ "aurabreak": {
+ desc: "Reverses the effect of Dark Aura and Fairy Aura.",
+ shortDesc: "Reverses the effect of Aura abilities.",
+ //todo
+ id: "aurabreak",
+ name: "Aura Break",
+ rating: 3,
+ num: -6,
+ gen: 6
+ },
"baddreams": {
desc: "If asleep, each of this Pokemon's opponents receives damage equal to one-eighth of its max HP.",
shortDesc: "Causes sleeping adjacent foes to lose 1/8 of their max HP at the end of each turn.",
@@ -211,6 +235,20 @@ exports.BattleAbilities = {
rating: 2,
num: 66
},
+ "cheekpouch": {
+ desc: "Increases HP when this Pokemon consumes a berry.",
+ shortDesc: "Increases HP when this Pokemon consumes a berry.",
+ onUseItem: function(item, pokemon) {
+ if (item.isBerry) {
+ pokemon.heal(10);
+ }
+ },
+ id: "cheekpouch",
+ name: "Cheek Pouch",
+ rating: 3,
+ num: -6,
+ gen: 6
+ },
"chlorophyll": {
desc: "If this Pokemon is active while Sunny Day is in effect, its speed is temporarily doubled.",
shortDesc: "If Sunny Day is active, this Pokemon's Speed is doubled.",
@@ -351,6 +389,21 @@ exports.BattleAbilities = {
rating: 0.5,
num: 6
},
+ "darkaura": {
+ desc: "Increases the power of all Dark-type moves in battle.",
+ shortDesc: "Increases the power of all Dark-type moves in battle.",
+ onBasePowerPriority: 8,
+ onBasePower: function(bpMod, attacker, defender, move) {
+ if (move.type === 'Dark') {
+ return this.chain(bpMod, 1.2);
+ }
+ },
+ id: "darkaura",
+ name: "Dark Aura",
+ rating: 3,
+ num: -6,
+ gen: 6
+ },
"defeatist": {
desc: "Attack and Special Attack are halved when HP is less than half.",
shortDesc: "When this Pokemon has 1/2 or less of its max HP, its Attack and Sp. Atk are halved.",
@@ -497,6 +550,21 @@ exports.BattleAbilities = {
rating: 2,
num: 27
},
+ "fairyaura": {
+ desc: "Increases the power of all Dark-type moves in battle.",
+ shortDesc: "Increases the power of all Dark-type moves in battle.",
+ onBasePowerPriority: 8,
+ onBasePower: function(bpMod, attacker, defender, move) {
+ if (move.type === 'Fairy') {
+ return this.chain(bpMod, 1.2);
+ }
+ },
+ id: "fairyaura",
+ name: "Fairy Aura",
+ rating: 3,
+ num: -6,
+ gen: 6
+ },
"filter": {
desc: "This Pokemon receives one-fourth reduced damage from Super Effective attacks.",
shortDesc: "This Pokemon receives 3/4 damage from super effective attacks.",
@@ -618,6 +686,16 @@ exports.BattleAbilities = {
rating: 3,
num: 122
},
+ "flowerveil": {
+ desc: "Prevents lowering of ally Grass-type Pokemon's stats.",
+ shortDesc: "Prevents lowering of ally Grass-type Pokemon's stats.",
+ //todo
+ id: "flowerveil",
+ name: "Flower Veil",
+ rating: 0,
+ num: -6,
+ gen: 6
+ },
"forecast": {
desc: "This Pokemon's type changes according to the current weather conditions: it becomes Fire-type during Sunny Day, Water-type during Rain Dance, Ice-type during Hail and remains its regular type otherwise.",
shortDesc: "Castform's type changes to the current weather condition's type, except Sandstorm.",
@@ -709,6 +787,19 @@ exports.BattleAbilities = {
rating: 1.5,
num: 119
},
+ "furcoat": {
+ desc: "Halves the damage done to the Pokemon by physical attacks.",
+ shortDesc: "Halves the damage done to the Pokemon by physical attacks.",
+ onModifyAtkPriority: 6,
+ onSourceModifyAtk: function(atkMod, attacker, defender, move) {
+ return this.chain(atkMod, 0.5);
+ },
+ id: "furcoat",
+ name: "Fur Coat",
+ rating: 3.5,
+ num: -6,
+ gen: 6
+ },
"gluttony": {
desc: "This Pokemon consumes its held berry when its health reaches 50% max HP or lower.",
shortDesc: "When this Pokemon has 1/2 or less of its max HP, it uses certain Berries early.",
@@ -1261,6 +1352,21 @@ exports.BattleAbilities = {
rating: 3,
num: 63
},
+ "megalauncher": {
+ desc: "Boosts the power of pulse moves such as Water Pulse and Dark Pulse.",
+ shortDesc: "Boosts the power of pulse moves.",
+ onBasePowerPriority: 8,
+ onBasePower: function(bpMod, attacker, defender, move) {
+ if (move.isPulseMove) {
+ return this.chain(bpMod, 1.2);
+ }
+ },
+ id: "megalauncher",
+ name: "Mega Launcher",
+ rating: 3,
+ num: -6,
+ gen: 6
+ },
"minus": {
desc: "This Pokemon's Special Attack receives a 50% boost in double battles if its partner has the Plus ability.",
shortDesc: "If another ally has this Ability or the Plus Ability, this Pokemon's Sp. Atk is 1.5x.",
@@ -1526,6 +1632,16 @@ exports.BattleAbilities = {
rating: 1,
num: 20
},
+ "parentalbond": {
+ desc: "Allows the Pokemon to hit twice with the same move in one turn.",
+ shortDesc: "Hits twice in one turn.",
+ //todo
+ id: "parentalbond",
+ name: "Parental Bond",
+ rating: 3,
+ num: -6,
+ gen: 6
+ },
"pickup": {
desc: "If an opponent uses a consumable item, Pickup will give the Pokemon the item used, if it is not holding an item. If multiple Pickup Pokemon are in play, one will pick up a copy of the used Berry, and may or may not use it immediately. Works on Berries, Gems, Absorb Bulb, Focus Sash, Herbs, Cell Battery, Red Card, and anything that is thrown with Fling.",
shortDesc: "If this Pokemon has no item, it finds one used by an adjacent Pokemon this turn.",
@@ -1571,6 +1687,20 @@ exports.BattleAbilities = {
rating: 1,
num: 124
},
+ "pixilate": {
+ desc: "Turn all of this Pokemon's Normal-typed attacks into Fairy-typed.",
+ shortDesc: "This Pokemon's Normal moves become Fairy.",
+ onModifyMove: function(move) {
+ if (move.type === 'Normal') {
+ move.type = 'Fairy';
+ }
+ },
+ id: "pixelite",
+ name: "Pixelite",
+ rating: 3,
+ num: -6,
+ gen: 6
+ },
"plus": {
desc: "This Pokemon's Special Attack receives a 50% boost in double battles if its partner has the Minus ability.",
shortDesc: "If another ally has this Ability or the Minus Ability, this Pokemon's Sp. Atk is 1.5x.",
@@ -1667,6 +1797,16 @@ exports.BattleAbilities = {
rating: 2,
num: 46
},
+ "protean": {
+ desc: "Changes user's type to match the move it used last.",
+ shortDesc: "Changes user's type to match the move it used last.",
+ //todo
+ id: "protean",
+ name: "Protean",
+ rating: 1.5,
+ num: -6,
+ gen: 6
+ },
"purepower": {
desc: "This Pokemon's Attack stat is doubled. Therefore, if this Pokemon's Attack stat on the status screen is 200, it effectively has an Attack stat of 400; which is then subject to the full range of stat boosts and reductions.",
shortDesc: "This Pokemon's Attack is doubled.",
@@ -1733,6 +1873,20 @@ exports.BattleAbilities = {
rating: 3,
num: 120
},
+ "refrigerate": {
+ desc: "Turn all of this Pokemon's Normal-typed attacks into Ice-typed.",
+ shortDesc: "This Pokemon's Normal moves become Ice.",
+ onModifyMove: function(move) {
+ if (move.type === 'Normal') {
+ move.type = 'Ice';
+ }
+ },
+ id: "refrigerate",
+ name: "Refrigerate",
+ rating: 3,
+ num: -6,
+ gen: 6
+ },
"regenerator": {
desc: "Causes the user to restore HP by 1/3 of its maximum when switching out.",
shortDesc: "This Pokemon heals 1/3 of its max HP when it switches out.",
@@ -2165,6 +2319,16 @@ exports.BattleAbilities = {
rating: -1,
num: 100
},
+ "stancechange": {
+ desc: "The Pokemon changes form depending on how it battles. Defense form for Status moves, and Offense form for attacking moves.",
+ shortDesc: "The Pokemon changes form depending on how it battles.",
+ //todo after adding aegislash forms
+ id: "stancechange",
+ name: "Stance Change",
+ rating: 4.5,
+ num: -6,
+ gen: 6
+ },
"static": {
desc: "If an opponent directly attacks this Pokemon, there is a 30% chance that the opponent will become paralyzed.",
shortDesc: "30% chance of paralyzing a Pokemon making contact with this Pokemon.",
@@ -2247,6 +2411,21 @@ exports.BattleAbilities = {
rating: 3.5,
num: 114
},
+ "strongjaw": {
+ desc: "This Pokemon receives a 50% power boost for attacks such as Bite and Crunch.",
+ shortDesc: "This Pokemon's bite-based attacks do 1.5x damage.",
+ onBasePowerPriority: 8,
+ onBasePower: function(bpMod, attacker, defender, move) {
+ if (move.isBiteAttack) {
+ return this.chain(bpMod, 1.5);
+ }
+ },
+ id: "strongjaw",
+ name: "Strong Jaw",
+ rating: 3,
+ num: -6,
+ gen: 6
+ },
"sturdy": {
desc: "This Pokemon is immune to OHKO moves, and will survive with 1 HP if hit by an attack which would KO it while at full health.",
shortDesc: "If this Pokemon is at full HP, it lives one hit with at least 1HP. OHKO moves fail on it.",
@@ -2312,6 +2491,16 @@ exports.BattleAbilities = {
rating: 2,
num: 68
},
+ "sweetveil": {
+ desc: "Prevents allies to be put to Sleep.",
+ shortDesc: "Prevents allies to be put to Sleep.",
+ //todo
+ id: "sweetveil",
+ name: "Sweet Veil",
+ rating: 0,
+ num: -6,
+ gen: 6
+ },
"swiftswim": {
desc: "If this Pokemon is active while Rain Dance is in effect, its speed is temporarily doubled.",
shortDesc: "If Rain Dance is active, this Pokemon's Speed is doubled.",
@@ -2475,6 +2664,21 @@ exports.BattleAbilities = {
rating: 3,
num: 137
},
+ "toughclaws": {
+ desc: "This Pokemon receives a 20% power boost for Physical attacks.",
+ shortDesc: "This Pokemon's Physical attacks do 1.2x damage.",
+ onBasePowerPriority: 8,
+ onBasePower: function(bpMod, attacker, defender, move) {
+ if (move.category === 'Physical') {
+ return this.chain(bpMod, 1.2);
+ }
+ },
+ id: "toughclaws",
+ name: "Tough Claws",
+ rating: 3,
+ num: -6,
+ gen: 6
+ },
"trace": {
desc: "When this Pokemon enters the field, it temporarily copies an opponent's ability (except Multitype). This ability remains with this Pokemon until it leaves the field.",
shortDesc: "On switch-in, or when it can, this Pokemon copies a random adjacent foe's Ability.",
diff --git a/data/items.js b/data/items.js
index fe6428879e..85c0158a51 100644
--- a/data/items.js
+++ b/data/items.js
@@ -314,6 +314,7 @@ exports.BattleItems = {
spritenum: 53,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Bug') {
if (source.useItem()) {
this.add('-enditem', source, 'Bug Gem', '[from] gem', '[move] '+move.name);
@@ -694,6 +695,7 @@ exports.BattleItems = {
spritenum: 89,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Dark') {
if (source.useItem()) {
this.add('-enditem', source, 'Dark Gem', '[from] gem', '[move] '+move.name);
@@ -945,6 +947,7 @@ exports.BattleItems = {
spritenum: 120,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Electric') {
if (source.useItem()) {
this.add('-enditem', source, 'Electric Gem', '[from] gem', '[move] '+move.name);
@@ -1049,6 +1052,7 @@ exports.BattleItems = {
spritenum: 139,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Fighting') {
if (source.useItem()) {
this.add('-enditem', source, 'Fighting Gem', '[from] gem', '[move] '+move.name);
@@ -1090,6 +1094,7 @@ exports.BattleItems = {
spritenum: 141,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Fire') {
if (source.useItem()) {
this.add('-enditem', source, 'Fire Gem', '[from] gem', '[move] '+move.name);
@@ -1177,6 +1182,7 @@ exports.BattleItems = {
spritenum: 149,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Flying') {
if (source.useItem()) {
this.add('-enditem', source, 'Flying Gem', '[from] gem', '[move] '+move.name);
@@ -1266,6 +1272,7 @@ exports.BattleItems = {
spritenum: 161,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Ghost') {
if (source.useItem()) {
this.add('-enditem', source, 'Ghost Gem', '[from] gem', '[move] '+move.name);
@@ -1355,6 +1362,7 @@ exports.BattleItems = {
spritenum: 182,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Ground') {
if (source.useItem()) {
this.add('-enditem', source, 'Ground Gem', '[from] gem', '[move] '+move.name);
@@ -1486,6 +1494,7 @@ exports.BattleItems = {
spritenum: 218,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Ice') {
if (source.useItem()) {
this.add('-enditem', source, 'Ice Gem', '[from] gem', '[move] '+move.name);
@@ -2337,6 +2346,7 @@ exports.BattleItems = {
spritenum: 307,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Normal') {
if (source.useItem()) {
this.add('-enditem', source, 'Normal Gem', '[from] gem', '[move] '+move.name);
@@ -2597,6 +2607,7 @@ exports.BattleItems = {
spritenum: 344,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Poison') {
if (source.useItem()) {
this.add('-enditem', source, 'Poison Gem', '[from] gem', '[move] '+move.name);
@@ -2660,6 +2671,7 @@ exports.BattleItems = {
spritenum: 369,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Psychic') {
if (source.useItem()) {
this.add('-enditem', source, 'Psychic Gem', '[from] gem', '[move] '+move.name);
@@ -2894,6 +2906,7 @@ exports.BattleItems = {
spritenum: 415,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Rock') {
if (source.useItem()) {
this.add('-enditem', source, 'Rock Gem', '[from] gem', '[move] '+move.name);
@@ -3377,6 +3390,7 @@ exports.BattleItems = {
spritenum: 473,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Steel') {
if (source.useItem()) {
this.add('-enditem', source, 'Steel Gem', '[from] gem', '[move] '+move.name);
@@ -3596,6 +3610,7 @@ exports.BattleItems = {
spritenum: 528,
isGem: true,
onSourceTryPrimaryHit: function(target, source, move) {
+ if (target === source || move.category === 'Status') return;
if (move.type === 'Water') {
if (source.useItem()) {
this.add('-enditem', source, 'Water Gem', '[from] gem', '[move] '+move.name);
diff --git a/data/moves.js b/data/moves.js
index 80f8f5ebd2..d7d93cddbc 100644
--- a/data/moves.js
+++ b/data/moves.js
@@ -675,6 +675,25 @@ exports.BattleMovedex = {
target: "normal",
type: "Ice"
},
+ "babydolleyes": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 0,
+ category: "Status",
+ desc: "Lowers the target's Attack by 1 stage. Priority +1.",
+ shortDesc: "Lowers foe's Defense by 1. Priority +1.",
+ id: "babydolleyes",
+ name: "Baby-Doll Eyes",
+ pp: 25,
+ priority: 1,
+ boosts: {
+ atk: -1
+ },
+ secondary: false,
+ target: "normal",
+ type: "Fairy"
+ },
"barrage": {
num: 140,
accuracy: 85,
@@ -909,6 +928,7 @@ exports.BattleMovedex = {
pp: 25,
priority: 0,
isContact: true,
+ isBiteAttack: true,
secondary: {
chance: 30,
volatileStatus: 'flinch'
@@ -958,7 +978,7 @@ exports.BattleMovedex = {
"blizzard": {
num: 59,
accuracy: 70,
- basePower: 120,
+ basePower: 110,
category: "Special",
desc: "Deals damage to all adjacent foes with a 10% chance to freeze each. If the weather is Hail, this move cannot miss.",
shortDesc: "10% chance to freeze the foe(s).",
@@ -1108,6 +1128,23 @@ exports.BattleMovedex = {
target: "normal",
type: "Ground"
},
+ "boomburst": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 100,
+ category: "Physical",
+ desc: "Deals damage to all Pokemon within range, including any allies.",
+ shortDesc: "Hits adjacent Pokemon, including allies.",
+ id: "boomburst",
+ name: "Boomburst",
+ pp: 10,
+ priority: 0,
+ isSoundBased: true,
+ secondary: false,
+ target: "allAdjacent",
+ type: "Normal"
+ },
"bounce": {
num: 340,
accuracy: 85,
@@ -1225,7 +1262,7 @@ exports.BattleMovedex = {
"bubble": {
num: 145,
accuracy: 100,
- basePower: 20,
+ basePower: 40,
category: "Special",
desc: "Deals damage to all adjacent foes with a 10% chance to lower their Speed by 1 stage each.",
shortDesc: "10% chance to lower the foe(s) Speed by 1.",
@@ -1882,6 +1919,9 @@ exports.BattleMovedex = {
boosts: {
spe: -2
},
+ onTryHit: function(target, source) {
+ return !target.hasType('Grass');
+ },
secondary: false,
target: "normal",
type: "Grass"
@@ -1957,6 +1997,47 @@ exports.BattleMovedex = {
target: "normal",
type: "Water"
},
+ "craftyshield": {
+ num: -6,
+ gen: 6,
+ accuracy: true,
+ basePower: 0,
+ category: "Status",
+ desc: "Protects the user and allies from status moves. Priority +4.",
+ shortDesc: "Prevents status moves from affecting the user.",
+ id: "craftyshield",
+ isViable: true,
+ name: "Crafty Shield",
+ pp: 10,
+ priority: 4,
+ stallingMove: true, // Note: stallingMove is not used anywhere.
+ volatileStatus: 'craftyshield',
+ onTryHit: function(target, source, move) {
+ return !!this.willAct() && this.runEvent('StallMove', target);
+ },
+ onHit: function(pokemon) {
+ pokemon.addVolatile('stall');
+ },
+ effect: {
+ duration: 1,
+ onStart: function(target) {
+ this.add('-singleturn', target, 'Crafty Shield');
+ },
+ onTryHitPriority: 3,
+ onTryHit: function(target, source, move) {
+ if (move.breaksProtect) {
+ target.removeVolatile('Crafty Shield');
+ return;
+ }
+ if (move && (move.target === 'self' || move.category !== 'Status')) return;
+ this.add('-activate', target, 'Crafty Shield');
+ return null;
+ }
+ },
+ secondary: false,
+ target: "self",
+ type: "Fairy"
+ },
"crosschop": {
num: 238,
accuracy: 80,
@@ -2009,6 +2090,7 @@ exports.BattleMovedex = {
pp: 15,
priority: 0,
isContact: true,
+ isBiteAttack: true,
secondary: {
chance: 20,
boosts: {
@@ -2128,6 +2210,7 @@ exports.BattleMovedex = {
name: "Dark Pulse",
pp: 15,
priority: 0,
+ isPulseMove: true,
secondary: {
chance: 20,
volatileStatus: 'flinch'
@@ -2152,6 +2235,23 @@ exports.BattleMovedex = {
target: "allAdjacentFoes",
type: "Dark"
},
+ "dazzlinggleam": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 80,
+ category: "Special",
+ desc: "Deals damage to one adjacent target.",
+ shortDesc: "Deals damage to one adjacent target.",
+ id: "dazzlinggleam",
+ isViable: true,
+ name: "Dazzling Gleam",
+ pp: 15,
+ priority: 0,
+ secondary: false,
+ target: "normal",
+ type: "Fairy"
+ },
"defendorder": {
num: 455,
accuracy: true,
@@ -2685,6 +2785,7 @@ exports.BattleMovedex = {
name: "Dragon Pulse",
pp: 10,
priority: 0,
+ isPulseMove: true,
secondary: false,
target: "any",
type: "Dragon"
@@ -2742,6 +2843,25 @@ exports.BattleMovedex = {
target: "normal",
type: "Dragon"
},
+ "drainingkiss": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 75,
+ category: "Physical",
+ desc: "Deals damage to one adjacent target. The user recovers half of the HP lost by the target, rounded up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. Makes contact.",
+ shortDesc: "User recovers 50% of the damage dealt.",
+ id: "drainingkiss",
+ isViable: true,
+ name: "Draining Kiss",
+ pp: 10,
+ priority: 0,
+ isContact: true,
+ drain: [1,2],
+ secondary: false,
+ target: "normal",
+ type: "Fairy"
+ },
"drainpunch": {
num: 409,
accuracy: 100,
@@ -3332,6 +3452,22 @@ exports.BattleMovedex = {
target: "normal",
type: "Dark"
},
+ "fairywind": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 40,
+ category: "Special",
+ desc: "Deals damage to one adjacent target.",
+ shortDesc: "Deals damage to one adjacent target.",
+ id: "fairywind",
+ name: "Fairy Wind",
+ pp: 30,
+ priority: 0,
+ secondary: false,
+ target: "normal",
+ type: "Fairy"
+ },
"fakeout": {
num: 252,
accuracy: 100,
@@ -3484,7 +3620,7 @@ exports.BattleMovedex = {
"fireblast": {
num: 126,
accuracy: 85,
- basePower: 120,
+ basePower: 110,
category: "Special",
desc: "Deals damage to one adjacent target with a 10% chance to burn it.",
shortDesc: "10% chance to burn the target.",
@@ -3513,6 +3649,7 @@ exports.BattleMovedex = {
pp: 15,
priority: 0,
isContact: true,
+ isBiteAttack: true,
secondaries: [ {
chance: 10,
status: 'brn'
@@ -3745,7 +3882,7 @@ exports.BattleMovedex = {
"flamethrower": {
num: 53,
accuracy: 100,
- basePower: 95,
+ basePower: 90,
category: "Special",
desc: "Deals damage to one adjacent target with a 10% chance to burn it.",
shortDesc: "10% chance to burn the target.",
@@ -3941,6 +4078,22 @@ exports.BattleMovedex = {
target: "any",
type: "Flying"
},
+ "flyingpress": {
+ num: -6,
+ gen: 6,
+ accuracy: 95,
+ basePower: 80,
+ category: "Physical",
+ desc: "Both Fighting-type and Flying-type simultaneously.",
+ shortDesc: "Both Fighting-type and Flying-type simultaneously.",
+ id: "flyingpress",
+ name: "Flying Press",
+ pp: 10,
+ priority: 0,
+ secondary: false,
+ target: "normal",
+ type: "Fighting"
+ },
"focusblast": {
num: 411,
accuracy: 70,
@@ -4098,6 +4251,22 @@ exports.BattleMovedex = {
target: "normal",
type: "Normal"
},
+ "forestscurse": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 0,
+ category: "Status",
+ desc: "???",
+ shortDesc: "???",
+ id: "forestscurse",
+ name: "Forest's Curse",
+ pp: 15,
+ priority: 0,
+ secondary: false,
+ target: "normal",
+ type: "Grass"
+ },
"foulplay": {
num: 492,
accuracy: 100,
@@ -4116,6 +4285,25 @@ exports.BattleMovedex = {
target: "normal",
type: "Dark"
},
+ "freezedry": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 70,
+ category: "Special",
+ desc: "Deals damage to one adjacent target with a 10% chance to freeze it. Super-effective against Water-type Pokemon",
+ shortDesc: "Super-effective against Water. 10% freeze chance.",
+ id: "freezedry",
+ name: "Freeze Dry",
+ pp: 15,
+ priority: 0,
+ secondary: {
+ chance: 10,
+ status: 'frz'
+ },
+ target: "normal",
+ type: "Ice"
+ },
"freezeshock": {
num: 553,
accuracy: 90,
@@ -4172,7 +4360,7 @@ exports.BattleMovedex = {
"frostbreath": {
num: 524,
accuracy: 90,
- basePower: 40,
+ basePower: 60,
category: "Special",
desc: "Deals damage to one adjacent target. This move is always a critical hit unless the target is under the effect of Lucky Chant or has the Abilities Battle Armor or Shell Armor.",
shortDesc: "Always results in a critical hit.",
@@ -4226,7 +4414,7 @@ exports.BattleMovedex = {
"furycutter": {
num: 210,
accuracy: 95,
- basePower: 20,
+ basePower: 40,
basePowerCallback: function(pokemon) {
if (!pokemon.volatiles.furycutter) {
pokemon.addVolatile('furycutter');
@@ -4415,6 +4603,43 @@ exports.BattleMovedex = {
target: "normal",
type: "Steel"
},
+ "geomancy": {
+ num: -6,
+ gen: 6,
+ accuracy: true,
+ basePower: 0,
+ category: "Status",
+ desc: "The user charges turn one, then sharply raise Special Attack, Special Defense, and Speed the next turn.",
+ shortDesc: "Sharply raises SpAtk, SpDef, and Speed on turn 2.",
+ id: "geomancy",
+ name: "Geomancy",
+ pp: 15,
+ priority: 0,
+ isTwoTurnMove: true,
+ onTry: function(attacker, defender, move) {
+ if (attacker.removeVolatile(move.id)) {
+ return;
+ }
+ this.add('-prepare', attacker, move.name, defender);
+ attacker.addVolatile(move.id, defender);
+ if (!this.runEvent('ChargeMove', attacker, defender, move)) {
+ this.add('-anim', attacker, move.name, defender);
+ attacker.removeVolatile(move.id);
+ return;
+ }
+ return null;
+ },
+ effect: {
+ duration: 2,
+ onLockMove: 'geomancy',
+ onStart: function(pokemon) {
+ this.boost({spa:2, spd:2, spe:2}, pokemon, pokemon, this.getMove('geomancy'));
+ }
+ },
+ secondary: false,
+ target: "self",
+ type: "Fairy"
+ },
"gigadrain": {
num: 202,
accuracy: 100,
@@ -4488,6 +4713,24 @@ exports.BattleMovedex = {
target: "normal",
type: "Normal"
},
+ "glowpunch": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 70,
+ category: "Physical",
+ desc: "Deals damage to one adjacent target. Makes contact. Damage is boosted to 1.2x by the Ability Iron Fist.",
+ shortDesc: "Deals damage to one adjacent target.",
+ id: "glowpunch",
+ name: "Glow Punch",
+ pp: 20,
+ priority: 0,
+ isContact: true,
+ isPunchAttack: true,
+ secondary: false,
+ target: "normal",
+ type: "Fire"
+ },
"grassknot": {
num: 447,
accuracy: 100,
@@ -5382,10 +5625,7 @@ exports.BattleMovedex = {
"hiddenpower": {
num: 237,
accuracy: 100,
- basePower: 0,
- basePowerCallback: function(pokemon) {
- return pokemon.hpPower || 70;
- },
+ basePower: 60,
category: "Special",
desc: "Deals damage to one adjacent target. This move's type and power depend on the user's individual values (IVs). Power varies between 30 and 70, and type can be any but Normal.",
shortDesc: "Varies in power and type based on the user's IVs.",
@@ -5403,7 +5643,7 @@ exports.BattleMovedex = {
},
"hiddenpowerbug": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5417,7 +5657,7 @@ exports.BattleMovedex = {
},
"hiddenpowerdark": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5431,7 +5671,7 @@ exports.BattleMovedex = {
},
"hiddenpowerdragon": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5445,7 +5685,7 @@ exports.BattleMovedex = {
},
"hiddenpowerelectric": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5460,7 +5700,7 @@ exports.BattleMovedex = {
},
"hiddenpowerfairy": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5476,7 +5716,7 @@ exports.BattleMovedex = {
},
"hiddenpowerfighting": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5491,7 +5731,7 @@ exports.BattleMovedex = {
},
"hiddenpowerfire": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5506,7 +5746,7 @@ exports.BattleMovedex = {
},
"hiddenpowerflying": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5520,7 +5760,7 @@ exports.BattleMovedex = {
},
"hiddenpowerghost": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5534,7 +5774,7 @@ exports.BattleMovedex = {
},
"hiddenpowergrass": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5549,7 +5789,7 @@ exports.BattleMovedex = {
},
"hiddenpowerground": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5563,7 +5803,7 @@ exports.BattleMovedex = {
},
"hiddenpowerice": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5578,7 +5818,7 @@ exports.BattleMovedex = {
},
"hiddenpowerpoison": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5592,7 +5832,7 @@ exports.BattleMovedex = {
},
"hiddenpowerpsychic": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5606,7 +5846,7 @@ exports.BattleMovedex = {
},
"hiddenpowerrock": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5620,7 +5860,7 @@ exports.BattleMovedex = {
},
"hiddenpowersteel": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5634,7 +5874,7 @@ exports.BattleMovedex = {
},
"hiddenpowerwater": {
accuracy: 100,
- basePower: 70,
+ basePower: 60,
category: "Special",
desc: "",
shortDesc: "",
@@ -5741,7 +5981,7 @@ exports.BattleMovedex = {
"hurricane": {
num: 542,
accuracy: 70,
- basePower: 120,
+ basePower: 110,
category: "Special",
desc: "Deals damage to one adjacent or non-adjacent target with a 30% chance to confuse it. This move can hit a target using Bounce, Fly, or Sky Drop. If the weather is Rain Dance, this move cannot miss. If the weather is Sunny Day, this move's accuracy is 50%.",
shortDesc: "30% chance to confuse target. Can't miss in rain.",
@@ -5782,7 +6022,7 @@ exports.BattleMovedex = {
"hydropump": {
num: 56,
accuracy: 80,
- basePower: 120,
+ basePower: 110,
category: "Special",
desc: "Deals damage to one adjacent target.",
shortDesc: "No additional effect.",
@@ -5825,6 +6065,7 @@ exports.BattleMovedex = {
pp: 15,
priority: 0,
isContact: true,
+ isBiteAttack: true,
secondary: {
chance: 10,
volatileStatus: 'flinch'
@@ -5917,7 +6158,7 @@ exports.BattleMovedex = {
"icebeam": {
num: 58,
accuracy: 100,
- basePower: 95,
+ basePower: 90,
category: "Special",
desc: "Deals damage to one adjacent target with a 10% chance to freeze it.",
shortDesc: "10% chance to freeze the target.",
@@ -5981,6 +6222,7 @@ exports.BattleMovedex = {
pp: 15,
priority: 0,
isContact: true,
+ isBiteAttack: true,
secondaries: [ {
chance: 10,
status: 'frz'
@@ -6159,6 +6401,24 @@ exports.BattleMovedex = {
target: "normal",
type: "Fire"
},
+ "infestation": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 20,
+ category: "Physical",
+ desc: "Deals damage to one adjacent target and prevents it from switching for four or five turns; seven turns if the user is holding Grip Claw. Causes damage to the target equal to 1/16 of its maximum HP (1/8 if the user is holding Binding Band), rounded down, at the end of each turn during effect. The target can still switch out if it is holding Shed Shell or uses Baton Pass, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field, or if the target uses Rapid Spin. This effect is not stackable or reset by using this or another partial-trapping move.",
+ shortDesc: "Traps and damages the target for 4-5 turns.",
+ id: "infestation",
+ isViable: true,
+ name: "Infestation",
+ pp: 20,
+ priority: 0,
+ volatileStatus: 'partiallytrapped',
+ secondary: false,
+ target: "normal",
+ type: "Bug"
+ },
"ingrain": {
num: 275,
accuracy: true,
@@ -6683,7 +6943,7 @@ exports.BattleMovedex = {
"lowsweep": {
num: 490,
accuracy: 100,
- basePower: 60,
+ basePower: 65,
category: "Physical",
desc: "Deals damage to one adjacent target with a 100% chance to lower its Speed by 1 stage. Makes contact.",
shortDesc: "100% chance to lower the target's Speed by 1.",
@@ -6991,31 +7251,6 @@ exports.BattleMovedex = {
num: 222,
accuracy: 100,
basePower: 0,
- basePowerCallback: function(pokemon) {
- var i = this.random(100);
- if (i < 5) {
- this.add('-activate', pokemon, 'move: Magnitude', 4);
- return 10;
- } else if (i < 15) {
- this.add('-activate', pokemon, 'move: Magnitude', 5);
- return 30;
- } else if (i < 35) {
- this.add('-activate', pokemon, 'move: Magnitude', 6);
- return 50;
- } else if (i < 65) {
- this.add('-activate', pokemon, 'move: Magnitude', 7);
- return 70;
- } else if (i < 85) {
- this.add('-activate', pokemon, 'move: Magnitude', 8);
- return 90;
- } else if (i < 95) {
- this.add('-activate', pokemon, 'move: Magnitude', 9);
- return 110;
- } else {
- this.add('-activate', pokemon, 'move: Magnitude', 10);
- return 150;
- }
- },
category: "Physical",
desc: "Deals damage to all adjacent Pokemon. The power of this move varies; 5% chances for 10 and 150 power, 10% chances for 30 and 110 power, 20% chances for 50 and 90 power, and 30% chance for 70 power. Power doubles against Pokemon using Dig.",
shortDesc: "Hits adjacent Pokemon. Power varies; 2x on Dig.",
@@ -7023,6 +7258,31 @@ exports.BattleMovedex = {
name: "Magnitude",
pp: 30,
priority: 0,
+ onModifyMove: function(move, pokemon) {
+ var i = this.random(100);
+ if (i < 5) {
+ this.add('-activate', pokemon, 'move: Magnitude', 4);
+ move.basePower = 10;
+ } else if (i < 15) {
+ this.add('-activate', pokemon, 'move: Magnitude', 5);
+ move.basePower = 30;
+ } else if (i < 35) {
+ this.add('-activate', pokemon, 'move: Magnitude', 6);
+ move.basePower = 50;
+ } else if (i < 65) {
+ this.add('-activate', pokemon, 'move: Magnitude', 7);
+ move.basePower = 70;
+ } else if (i < 85) {
+ this.add('-activate', pokemon, 'move: Magnitude', 8);
+ move.basePower = 90;
+ } else if (i < 95) {
+ this.add('-activate', pokemon, 'move: Magnitude', 9);
+ move.basePower = 110;
+ } else {
+ this.add('-activate', pokemon, 'move: Magnitude', 10);
+ move.basePower = 150;
+ }
+ },
secondary: false,
target: "allAdjacent",
type: "Ground"
@@ -7564,6 +7824,27 @@ exports.BattleMovedex = {
target: "normal",
type: "Psychic"
},
+ "moonblast": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 95,
+ category: "Special",
+ desc: "Deals damage to one adjacent target with a 30% chance to lower its Special Attack by 1 stage.",
+ shortDesc: "30% chance to lower the target's Sp. Atk by 1.",
+ id: "moonblast",
+ name: "Moon Blast",
+ pp: 10,
+ priority: 0,
+ secondary: {
+ chance: 30,
+ boosts: {
+ spa: -1
+ }
+ },
+ target: "normal",
+ type: "Fairy"
+ },
"moonlight": {
num: 236,
accuracy: true,
@@ -7718,6 +7999,27 @@ exports.BattleMovedex = {
target: "allAdjacentFoes",
type: "Water"
},
+ "mysticalfire": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 65,
+ category: "Special",
+ desc: "Deals damage to one adjacent target with a 30% chance to lower its Special Attack by 1 stage.",
+ shortDesc: "30% chance to lower the target's Sp. Atk by 1.",
+ id: "mysticalfire",
+ name: "Mystical Fire",
+ pp: 15,
+ priority: 0,
+ secondary: {
+ chance: 30,
+ boosts: {
+ spa: -1
+ }
+ },
+ target: "normal",
+ type: "Fire"
+ },
"nastyplot": {
num: 417,
accuracy: true,
@@ -7905,6 +8207,64 @@ exports.BattleMovedex = {
target: "normal",
type: "Ghost"
},
+ "nobleroar": {
+ num: -6,
+ gen: 6,
+ 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.",
+ shortDesc: "Lowers target's Atk and SpAtk by 1.",
+ id: "nobleroar",
+ name: "Noble Roar",
+ pp: 15,
+ priority: 0,
+ boosts: {
+ atk: -1,
+ spa: -1
+ },
+ secondary: false,
+ target: "normal",
+ type: "Normal"
+ },
+ "nuzzle": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 70,
+ category: "Special",
+ desc: "Deals damage and paralyzes the target.",
+ shortDesc: "Deals damage and paralyzes the target.",
+ id: "nuzzle",
+ isViable: true,
+ name: "Nuzzle",
+ pp: 10,
+ priority: 0,
+ secondary: {
+ chance: 100,
+ status: 'par'
+ },
+ target: "normal",
+ type: "Electric"
+ },
+ "oblivionwing": {
+ num: -6,
+ gen: 6,
+ 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.",
+ shortDesc: "User recovers 75% of the damage dealt.",
+ id: "oblivionwing",
+ isViable: true,
+ name: "Oblivion Wing",
+ pp: 5,
+ priority: 0,
+ drain: [3,4],
+ secondary: false,
+ target: "normal",
+ type: "Flying"
+ },
"octazooka": {
num: 190,
accuracy: 85,
@@ -8031,6 +8391,24 @@ exports.BattleMovedex = {
target: "normal",
type: "Normal"
},
+ "paraboliccharge": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 75,
+ category: "Physical",
+ desc: "Deals damage to all adjacent targets. The user recovers half of the HP lost by the target, rounded up.",
+ shortDesc: "User recovers 50% of the damage dealt.",
+ id: "paraboliccharge",
+ name: "Parabolic Charge",
+ pp: 10,
+ priority: 0,
+ isViable: true,
+ drain: [1,2],
+ secondary: false,
+ target: "allAdjacent",
+ type: "Electric"
+ },
"payday": {
num: 6,
accuracy: 100,
@@ -8162,6 +8540,47 @@ exports.BattleMovedex = {
target: "randomNormal",
type: "Grass"
},
+ "pantomforce": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 90,
+ category: "Physical",
+ desc: "Deals damage to one adjacent target and breaks through Protect and Detect for this turn, allowing other Pokemon to attack the target normally. This attack charges on the first turn and strikes on the second. On the first turn, the user avoids all attacks. The user cannot make a move between turns. If the user is holding a Power Herb, the move completes in one turn. Makes contact.",
+ shortDesc: "Disappears turn 1. Hits turn 2. Breaks protection.",
+ id: "pantomforce",
+ name: "Phantom Force",
+ pp: 5,
+ priority: 0,
+ isContact: true,
+ isTwoTurnMove: true,
+ breaksProtect: true,
+ onTry: function(attacker, defender, move) {
+ if (attacker.removeVolatile(move.id)) {
+ return;
+ }
+ this.add('-prepare', attacker, move.name, defender);
+ if (!this.runEvent('ChargeMove', attacker, defender, move)) {
+ this.add('-anim', attacker, move.name, defender);
+ return;
+ }
+ attacker.addVolatile(move.id, defender);
+ return null;
+ },
+ effect: {
+ duration: 2,
+ onLockMove: 'shadowforce',
+ onAccuracy: function(accuracy, target, source, move) {
+ if (move.id === 'helpinghand') {
+ return;
+ }
+ return 0;
+ }
+ },
+ secondary: false,
+ target: "normal",
+ type: "Ghost"
+ },
"pinmissile": {
num: 42,
accuracy: 85,
@@ -8178,6 +8597,41 @@ exports.BattleMovedex = {
target: "normal",
type: "Bug"
},
+ "playaround": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 70,
+ category: "Physical",
+ desc: "Deals damage to one adjacent target.",
+ shortDesc: "Deals damage to one adjacent target.",
+ id: "playnice",
+ name: "Play Nice",
+ pp: 20,
+ priority: 0,
+ secondary: false,
+ target: "normal",
+ type: "Fairy"
+ },
+ "playnice": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 0,
+ category: "Status",
+ desc: "Lowers the target's Defense by 1 stage. Pokemon protected by Magic Coat or the Ability Magic Bounce are unaffected and instead use this move themselves.",
+ shortDesc: "Lowers the target's Defense by 1.",
+ id: "playnice",
+ name: "Play Nice",
+ pp: 20,
+ priority: 0,
+ boosts: {
+ def: -1
+ },
+ secondary: false,
+ target: "normal",
+ type: "Normal"
+ },
"pluck": {
num: 365,
accuracy: 100,
@@ -8213,6 +8667,7 @@ exports.BattleMovedex = {
pp: 15,
priority: 0,
isContact: true,
+ isBiteAttack: true,
secondary: {
chance: 30,
status: 'tox'
@@ -9513,8 +9968,8 @@ exports.BattleMovedex = {
},
"rocktomb": {
num: 317,
- accuracy: 80,
- basePower: 50,
+ accuracy: 95,
+ basePower: 60,
category: "Physical",
desc: "Deals damage to one adjacent target with a 100% chance to lower its Speed by 1 stage.",
shortDesc: "100% chance to lower the target's Speed by 1.",
@@ -11243,6 +11698,9 @@ exports.BattleMovedex = {
name: "Spore",
pp: 15,
priority: 0,
+ onTryHit: function(target, source) {
+ return !target.hasType('Grass');
+ },
status: 'slp',
secondary: false,
target: "normal",
@@ -11530,6 +11988,9 @@ exports.BattleMovedex = {
name: "Stun Spore",
pp: 30,
priority: 0,
+ onTryHit: function(target, source) {
+ return !target.hasType('Grass');
+ },
status: 'par',
secondary: false,
target: "normal",
@@ -11741,7 +12202,7 @@ exports.BattleMovedex = {
"surf": {
num: 57,
accuracy: 100,
- basePower: 95,
+ basePower: 90,
category: "Special",
desc: "Deals damage to all adjacent Pokemon. Power doubles against Pokemon using Dive. (Field: Can be used to surf on water.)",
shortDesc: "Hits adjacent Pokemon. Power doubles on Dive.",
@@ -12251,7 +12712,7 @@ exports.BattleMovedex = {
"thunder": {
num: 87,
accuracy: 70,
- basePower: 120,
+ basePower: 110,
category: "Special",
desc: "Deals damage to one adjacent target with a 30% chance to paralyze it. This move can hit a target using Bounce, Fly, or Sky Drop. If the weather is Rain Dance, this move cannot miss. If the weather is Sunny Day, this move's accuracy is 50%.",
shortDesc: "30% chance to paralyze target. Can't miss in rain.",
@@ -12284,6 +12745,7 @@ exports.BattleMovedex = {
pp: 15,
priority: 0,
isContact: true,
+ isBiteAttack: true,
secondaries: [ {
chance: 10,
status: 'par'
@@ -12355,7 +12817,7 @@ exports.BattleMovedex = {
"thunderbolt": {
num: 85,
accuracy: 100,
- basePower: 95,
+ basePower: 90,
category: "Special",
desc: "Deals damage to one adjacent target with a 10% chance to paralyze it.",
shortDesc: "10% chance to paralyze the target.",
@@ -12562,6 +13024,27 @@ exports.BattleMovedex = {
target: "normal",
type: "Psychic"
},
+ "trickortreat": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 0,
+ category: "Status",
+ desc: "Causes one adjacent target to become a Ghost-type. Fails if the target is an Arceus. Pokemon protected by Magic Coat or the Ability Magic Bounce are unaffected and instead use this move themselves.",
+ shortDesc: "Changes the target's type to Ghost.",
+ id: "trickortreat",
+ name: "Trick-or-Treat",
+ pp: 20,
+ priority: 0,
+ isBounceable: true,
+ onHit: function(target) {
+ this.add('-start', target, 'typechange', 'Ghost');
+ target.types = ['Ghost'];
+ },
+ secondary: false,
+ target: "normal",
+ type: "Ghost"
+ },
"trickroom": {
num: 433,
accuracy: true,
@@ -12865,13 +13348,13 @@ exports.BattleMovedex = {
"vinewhip": {
num: 22,
accuracy: 100,
- basePower: 35,
+ basePower: 45,
category: "Physical",
desc: "Deals damage to one adjacent target. Makes contact.",
shortDesc: "No additional effect.",
id: "vinewhip",
name: "Vine Whip",
- pp: 15,
+ pp: 25,
priority: 0,
isContact: true,
secondary: false,
@@ -13035,6 +13518,7 @@ exports.BattleMovedex = {
name: "Water Pulse",
pp: 20,
priority: 0,
+ isPulseMove: true,
secondary: {
chance: 20,
volatileStatus: 'confusion'
@@ -13110,6 +13594,23 @@ exports.BattleMovedex = {
target: "normal",
type: "Water"
},
+ "watershuriken": {
+ num: -6,
+ gen: 6,
+ accuracy: 100,
+ basePower: 15,
+ category: "Physical",
+ desc: "Deals damage to one adjacent target and hits two to five times. Has a 1/3 chance to hit two or three times, and a 1/6 chance to hit four or five times. If one of the hits breaks the target's Substitute, it will take damage for the remaining hits. If the user has the Ability Skill Link, this move will always hit five times.",
+ shortDesc: "Hits 2-5 times in one turn.",
+ id: "watershuriken",
+ name: "Water Shuriken",
+ pp: 30,
+ priority: 0,
+ multihit: [2,5],
+ secondary: false,
+ target: "normal",
+ type: "Water"
+ },
"weatherball": {
num: 311,
accuracy: 100,
@@ -13245,7 +13746,7 @@ exports.BattleMovedex = {
},
"willowisp": {
num: 261,
- accuracy: 75,
+ accuracy: 85,
basePower: 0,
category: "Status",
desc: "Burns one adjacent target. Pokemon protected by Magic Coat or the Ability Magic Bounce are unaffected and instead use this move themselves.",
diff --git a/data/pokedex.js b/data/pokedex.js
index 08c1bf373c..75da9d0d2d 100644
--- a/data/pokedex.js
+++ b/data/pokedex.js
@@ -33,12 +33,12 @@ nidoqueen:{num:31,species:"Nidoqueen",types:["Poison","Ground"],gender:"F",baseS
nidoranm:{num:32,species:"NidoranM",types:["Poison"],gender:"M",baseStats:{hp:46,atk:57,def:40,spa:40,spd:40,spe:50},abilities:{0:"Poison Point",1:"Rivalry",DW:"Hustle"},heightm:0.5,weightkg:9,color:"Purple",evos:["nidorino"],eggGroups:["Monster","Ground"]},
nidorino:{num:33,species:"Nidorino",types:["Poison"],gender:"M",baseStats:{hp:61,atk:72,def:57,spa:55,spd:55,spe:65},abilities:{0:"Poison Point",1:"Rivalry",DW:"Hustle"},heightm:0.9,weightkg:19.5,color:"Purple",prevo:"nidoranm",evos:["nidoking"],evoLevel:16,eggGroups:["Monster","Ground"]},
nidoking:{num:34,species:"Nidoking",types:["Poison","Ground"],gender:"M",baseStats:{hp:81,atk:92,def:77,spa:85,spd:75,spe:85},abilities:{0:"Poison Point",1:"Rivalry",DW:"Sheer Force"},heightm:1.4,weightkg:62,color:"Purple",prevo:"nidorino",evoLevel:16,eggGroups:["Monster","Ground"]},
-clefairy:{num:35,species:"Clefairy",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:70,atk:45,def:48,spa:60,spd:65,spe:35},abilities:{0:"Cute Charm",1:"Magic Guard",DW:"Friend Guard"},heightm:0.6,weightkg:7.5,color:"Pink",prevo:"cleffa",evos:["clefable"],evoLevel:1,eggGroups:["Fairy"]},
-clefable:{num:36,species:"Clefable",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:95,atk:70,def:73,spa:85,spd:90,spe:60},abilities:{0:"Cute Charm",1:"Magic Guard",DW:"Unaware"},heightm:1.3,weightkg:40,color:"Pink",prevo:"clefairy",evoLevel:1,eggGroups:["Fairy"]},
+clefairy:{num:35,species:"Clefairy",types:["Fairy"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:70,atk:45,def:48,spa:60,spd:65,spe:35},abilities:{0:"Cute Charm",1:"Magic Guard",DW:"Friend Guard"},heightm:0.6,weightkg:7.5,color:"Pink",prevo:"cleffa",evos:["clefable"],evoLevel:1,eggGroups:["Fairy"]},
+clefable:{num:36,species:"Clefable",types:["Fairy"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:95,atk:70,def:73,spa:85,spd:90,spe:60},abilities:{0:"Cute Charm",1:"Magic Guard",DW:"Unaware"},heightm:1.3,weightkg:40,color:"Pink",prevo:"clefairy",evoLevel:1,eggGroups:["Fairy"]},
vulpix:{num:37,species:"Vulpix",types:["Fire"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:38,atk:41,def:40,spa:50,spd:65,spe:65},abilities:{0:"Flash Fire",DW:"Drought"},heightm:0.6,weightkg:9.9,color:"Brown",evos:["ninetales"],eggGroups:["Ground"]},
ninetales:{num:38,species:"Ninetales",types:["Fire"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:73,atk:76,def:75,spa:81,spd:100,spe:100},abilities:{0:"Flash Fire",DW:"Drought"},heightm:1.1,weightkg:19.9,color:"Yellow",prevo:"vulpix",evoLevel:1,eggGroups:["Ground"]},
-jigglypuff:{num:39,species:"Jigglypuff",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:115,atk:45,def:20,spa:45,spd:25,spe:20},abilities:{0:"Cute Charm",DW:"Friend Guard"},heightm:0.5,weightkg:5.5,color:"Pink",prevo:"igglybuff",evos:["wigglytuff"],evoLevel:1,eggGroups:["Fairy"]},
-wigglytuff:{num:40,species:"Wigglytuff",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:140,atk:70,def:45,spa:75,spd:50,spe:45},abilities:{0:"Cute Charm",DW:"Frisk"},heightm:1,weightkg:12,color:"Pink",prevo:"jigglypuff",evoLevel:1,eggGroups:["Fairy"]},
+jigglypuff:{num:39,species:"Jigglypuff",types:["Normal","Fairy"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:115,atk:45,def:20,spa:45,spd:25,spe:20},abilities:{0:"Cute Charm",DW:"Friend Guard"},heightm:0.5,weightkg:5.5,color:"Pink",prevo:"igglybuff",evos:["wigglytuff"],evoLevel:1,eggGroups:["Fairy"]},
+wigglytuff:{num:40,species:"Wigglytuff",types:["Normal","Fairy"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:140,atk:70,def:45,spa:75,spd:50,spe:45},abilities:{0:"Cute Charm",DW:"Frisk"},heightm:1,weightkg:12,color:"Pink",prevo:"jigglypuff",evoLevel:1,eggGroups:["Fairy"]},
zubat:{num:41,species:"Zubat",types:["Poison","Flying"],baseStats:{hp:40,atk:45,def:35,spa:30,spd:40,spe:55},abilities:{0:"Inner Focus",DW:"Infiltrator"},heightm:0.8,weightkg:7.5,color:"Purple",evos:["golbat"],eggGroups:["Flying"]},
golbat:{num:42,species:"Golbat",types:["Poison","Flying"],baseStats:{hp:75,atk:80,def:70,spa:65,spd:75,spe:90},abilities:{0:"Inner Focus",DW:"Infiltrator"},heightm:1.6,weightkg:55,color:"Purple",prevo:"zubat",evos:["crobat"],evoLevel:22,eggGroups:["Flying"]},
oddish:{num:43,species:"Oddish",types:["Grass","Poison"],baseStats:{hp:45,atk:50,def:55,spa:75,spd:65,spe:30},abilities:{0:"Chlorophyll",DW:"Run Away"},heightm:0.5,weightkg:5.4,color:"Blue",evos:["gloom"],eggGroups:["Plant"]},
@@ -120,7 +120,7 @@ goldeen:{num:118,species:"Goldeen",types:["Water"],baseStats:{hp:45,atk:67,def:6
seaking:{num:119,species:"Seaking",types:["Water"],baseStats:{hp:80,atk:92,def:65,spa:65,spd:80,spe:68},abilities:{0:"Swift Swim",1:"Water Veil",DW:"Lightningrod"},heightm:1.3,weightkg:39,color:"Red",prevo:"goldeen",evoLevel:33,eggGroups:["Water 2"]},
staryu:{num:120,species:"Staryu",types:["Water"],gender:"N",baseStats:{hp:30,atk:45,def:55,spa:70,spd:55,spe:85},abilities:{0:"Illuminate",1:"Natural Cure",DW:"Analytic"},heightm:0.8,weightkg:34.5,color:"Brown",evos:["starmie"],eggGroups:["Water 3"]},
starmie:{num:121,species:"Starmie",types:["Water","Psychic"],gender:"N",baseStats:{hp:60,atk:75,def:85,spa:100,spd:85,spe:115},abilities:{0:"Illuminate",1:"Natural Cure",DW:"Analytic"},heightm:1.1,weightkg:80,color:"Purple",prevo:"staryu",evoLevel:1,eggGroups:["Water 3"]},
-mrmime:{num:122,species:"Mr. Mime",types:["Psychic"],baseStats:{hp:40,atk:45,def:65,spa:100,spd:120,spe:90},abilities:{0:"Soundproof",1:"Filter",DW:"Technician"},heightm:1.3,weightkg:54.5,color:"Pink",prevo:"mimejr",evoLevel:1,evoMove:"Mimic",eggGroups:["Humanshape"]},
+mrmime:{num:122,species:"Mr. Mime",types:["Psychic","Fairy"],baseStats:{hp:40,atk:45,def:65,spa:100,spd:120,spe:90},abilities:{0:"Soundproof",1:"Filter",DW:"Technician"},heightm:1.3,weightkg:54.5,color:"Pink",prevo:"mimejr",evoLevel:1,evoMove:"Mimic",eggGroups:["Humanshape"]},
scyther:{num:123,species:"Scyther",types:["Bug","Flying"],baseStats:{hp:70,atk:110,def:80,spa:55,spd:80,spe:105},abilities:{0:"Swarm",1:"Technician",DW:"Steadfast"},heightm:1.5,weightkg:56,color:"Green",evos:["scizor"],eggGroups:["Bug"]},
jynx:{num:124,species:"Jynx",types:["Ice","Psychic"],gender:"F",baseStats:{hp:65,atk:50,def:35,spa:115,spd:95,spe:95},abilities:{0:"Oblivious",1:"Forewarn",DW:"Dry Skin"},heightm:1.4,weightkg:40.6,color:"Red",prevo:"smoochum",evoLevel:30,eggGroups:["Humanshape"]},
electabuzz:{num:125,species:"Electabuzz",types:["Electric"],genderRatio:{M:0.75,F:0.25},baseStats:{hp:65,atk:83,def:57,spa:95,spd:85,spe:105},abilities:{0:"Static",DW:"Vital Spirit"},heightm:1.1,weightkg:30,color:"Yellow",prevo:"elekid",evos:["electivire"],evoLevel:30,eggGroups:["Humanshape"]},
@@ -172,18 +172,18 @@ chinchou:{num:170,species:"Chinchou",types:["Water","Electric"],baseStats:{hp:75
lanturn:{num:171,species:"Lanturn",types:["Water","Electric"],baseStats:{hp:125,atk:58,def:58,spa:76,spd:76,spe:67},abilities:{0:"Volt Absorb",1:"Illuminate",DW:"Water Absorb"},heightm:1.2,weightkg:22.5,color:"Blue",prevo:"chinchou",evoLevel:27,eggGroups:["Water 2"]},
pichu:{num:172,species:"Pichu",types:["Electric"],baseStats:{hp:20,atk:40,def:15,spa:35,spd:35,spe:60},abilities:{0:"Static",DW:"Lightningrod"},heightm:0.3,weightkg:2,color:"Yellow",evos:["pikachu"],eggGroups:["No Eggs"],otherFormes:["pichuspikyeared"]},
pichuspikyeared:{num:172,species:"Pichu-Spiky-eared",baseSpecies:"Pichu",forme:"Spiky-eared",formeLetter:"S",types:["Electric"],gender:"F",baseStats:{hp:20,atk:40,def:15,spa:35,spd:35,spe:60},abilities:{0:"Static"},heightm:0.3,weightkg:2,color:"Yellow",eggGroups:["No Eggs"]},
-cleffa:{num:173,species:"Cleffa",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:50,atk:25,def:28,spa:45,spd:55,spe:15},abilities:{0:"Cute Charm",1:"Magic Guard",DW:"Friend Guard"},heightm:0.3,weightkg:3,color:"Pink",evos:["clefairy"],eggGroups:["No Eggs"]},
+cleffa:{num:173,species:"Cleffa",types:["Fairy"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:50,atk:25,def:28,spa:45,spd:55,spe:15},abilities:{0:"Cute Charm",1:"Magic Guard",DW:"Friend Guard"},heightm:0.3,weightkg:3,color:"Pink",evos:["clefairy"],eggGroups:["No Eggs"]},
igglybuff:{num:174,species:"Igglybuff",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:90,atk:30,def:15,spa:40,spd:20,spe:15},abilities:{0:"Cute Charm",DW:"Friend Guard"},heightm:0.3,weightkg:1,color:"Pink",evos:["jigglypuff"],eggGroups:["No Eggs"]},
-togepi:{num:175,species:"Togepi",types:["Normal"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:35,atk:20,def:65,spa:40,spd:65,spe:20},abilities:{0:"Hustle",1:"Serene Grace",DW:"Super Luck"},heightm:0.3,weightkg:1.5,color:"White",evos:["togetic"],eggGroups:["No Eggs"]},
-togetic:{num:176,species:"Togetic",types:["Normal","Flying"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:55,atk:40,def:85,spa:80,spd:105,spe:40},abilities:{0:"Hustle",1:"Serene Grace",DW:"Super Luck"},heightm:0.6,weightkg:3.2,color:"White",prevo:"togepi",evos:["togekiss"],evoLevel:2,eggGroups:["Flying","Fairy"]},
+togepi:{num:175,species:"Togepi",types:["Fairy"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:35,atk:20,def:65,spa:40,spd:65,spe:20},abilities:{0:"Hustle",1:"Serene Grace",DW:"Super Luck"},heightm:0.3,weightkg:1.5,color:"White",evos:["togetic"],eggGroups:["No Eggs"]},
+togetic:{num:176,species:"Togetic",types:["Fairy","Flying"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:55,atk:40,def:85,spa:80,spd:105,spe:40},abilities:{0:"Hustle",1:"Serene Grace",DW:"Super Luck"},heightm:0.6,weightkg:3.2,color:"White",prevo:"togepi",evos:["togekiss"],evoLevel:2,eggGroups:["Flying","Fairy"]},
natu:{num:177,species:"Natu",types:["Psychic","Flying"],baseStats:{hp:40,atk:50,def:45,spa:70,spd:45,spe:70},abilities:{0:"Synchronize",1:"Early Bird",DW:"Magic Bounce"},heightm:0.2,weightkg:2,color:"Green",evos:["xatu"],eggGroups:["Flying"]},
xatu:{num:178,species:"Xatu",types:["Psychic","Flying"],baseStats:{hp:65,atk:75,def:70,spa:95,spd:70,spe:95},abilities:{0:"Synchronize",1:"Early Bird",DW:"Magic Bounce"},heightm:1.5,weightkg:15,color:"Green",prevo:"natu",evoLevel:25,eggGroups:["Flying"]},
mareep:{num:179,species:"Mareep",types:["Electric"],baseStats:{hp:55,atk:40,def:40,spa:65,spd:45,spe:35},abilities:{0:"Static",DW:"Plus"},heightm:0.6,weightkg:7.8,color:"White",evos:["flaaffy"],eggGroups:["Monster","Ground"]},
flaaffy:{num:180,species:"Flaaffy",types:["Electric"],baseStats:{hp:70,atk:55,def:55,spa:80,spd:60,spe:45},abilities:{0:"Static",DW:"Plus"},heightm:0.8,weightkg:13.3,color:"Pink",prevo:"mareep",evos:["ampharos"],evoLevel:15,eggGroups:["Monster","Ground"]},
ampharos:{num:181,species:"Ampharos",types:["Electric"],baseStats:{hp:90,atk:75,def:75,spa:115,spd:90,spe:55},abilities:{0:"Static",DW:"Plus"},heightm:1.4,weightkg:61.5,color:"Yellow",prevo:"flaaffy",evoLevel:30,eggGroups:["Monster","Ground"]},
bellossom:{num:182,species:"Bellossom",types:["Grass"],baseStats:{hp:75,atk:80,def:85,spa:90,spd:100,spe:50},abilities:{0:"Chlorophyll",DW:"Healer"},heightm:0.4,weightkg:5.8,color:"Green",prevo:"gloom",evoLevel:21,eggGroups:["Plant"]},
-marill:{num:183,species:"Marill",types:["Water"],baseStats:{hp:70,atk:20,def:50,spa:20,spd:50,spe:40},abilities:{0:"Thick Fat",1:"Huge Power",DW:"Sap Sipper"},heightm:0.4,weightkg:8.5,color:"Blue",prevo:"azurill",evos:["azumarill"],evoLevel:1,eggGroups:["Water 1","Fairy"]},
-azumarill:{num:184,species:"Azumarill",types:["Water"],baseStats:{hp:100,atk:50,def:80,spa:50,spd:80,spe:50},abilities:{0:"Thick Fat",1:"Huge Power",DW:"Sap Sipper"},heightm:0.8,weightkg:28.5,color:"Blue",prevo:"marill",evoLevel:18,eggGroups:["Water 1","Fairy"]},
+marill:{num:183,species:"Marill",types:["Water","Fairy"],baseStats:{hp:70,atk:20,def:50,spa:20,spd:50,spe:40},abilities:{0:"Thick Fat",1:"Huge Power",DW:"Sap Sipper"},heightm:0.4,weightkg:8.5,color:"Blue",prevo:"azurill",evos:["azumarill"],evoLevel:1,eggGroups:["Water 1","Fairy"]},
+azumarill:{num:184,species:"Azumarill",types:["Water","Fairy"],baseStats:{hp:100,atk:50,def:80,spa:50,spd:80,spe:50},abilities:{0:"Thick Fat",1:"Huge Power",DW:"Sap Sipper"},heightm:0.8,weightkg:28.5,color:"Blue",prevo:"marill",evoLevel:18,eggGroups:["Water 1","Fairy"]},
sudowoodo:{num:185,species:"Sudowoodo",types:["Rock"],baseStats:{hp:70,atk:100,def:115,spa:30,spd:65,spe:30},abilities:{0:"Sturdy",1:"Rock Head",DW:"Rattled"},heightm:1.2,weightkg:38,color:"Brown",prevo:"bonsly",evoLevel:1,evoMove:"Mimic",eggGroups:["Mineral"]},
politoed:{num:186,species:"Politoed",types:["Water"],baseStats:{hp:90,atk:75,def:75,spa:90,spd:100,spe:70},abilities:{0:"Water Absorb",1:"Damp",DW:"Drizzle"},heightm:1.1,weightkg:33.9,color:"Green",prevo:"poliwhirl",evoLevel:25,eggGroups:["Water 1"]},
hoppip:{num:187,species:"Hoppip",types:["Grass","Flying"],baseStats:{hp:35,atk:35,def:40,spa:35,spd:55,spe:50},abilities:{0:"Chlorophyll",1:"Leaf Guard",DW:"Infiltrator"},heightm:0.4,weightkg:0.5,color:"Pink",evos:["skiploom"],eggGroups:["Fairy","Plant"]},
@@ -208,8 +208,8 @@ forretress:{num:205,species:"Forretress",types:["Bug","Steel"],baseStats:{hp:75,
dunsparce:{num:206,species:"Dunsparce",types:["Normal"],baseStats:{hp:100,atk:70,def:70,spa:65,spd:65,spe:45},abilities:{0:"Serene Grace",1:"Run Away",DW:"Rattled"},heightm:1.5,weightkg:14,color:"Yellow",eggGroups:["Ground"]},
gligar:{num:207,species:"Gligar",types:["Ground","Flying"],baseStats:{hp:65,atk:75,def:105,spa:35,spd:65,spe:85},abilities:{0:"Hyper Cutter",1:"Sand Veil",DW:"Immunity"},heightm:1.1,weightkg:64.8,color:"Purple",evos:["gliscor"],eggGroups:["Bug"]},
steelix:{num:208,species:"Steelix",types:["Steel","Ground"],baseStats:{hp:75,atk:85,def:200,spa:55,spd:65,spe:30},abilities:{0:"Rock Head",1:"Sturdy",DW:"Sheer Force"},heightm:9.2,weightkg:400,color:"Gray",prevo:"onix",evoLevel:1,eggGroups:["Mineral"]},
-snubbull:{num:209,species:"Snubbull",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:60,atk:80,def:50,spa:40,spd:40,spe:30},abilities:{0:"Intimidate",1:"Run Away",DW:"Rattled"},heightm:0.6,weightkg:7.8,color:"Pink",evos:["granbull"],eggGroups:["Ground","Fairy"]},
-granbull:{num:210,species:"Granbull",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:90,atk:120,def:75,spa:60,spd:60,spe:45},abilities:{0:"Intimidate",1:"Quick Feet",DW:"Rattled"},heightm:1.4,weightkg:48.7,color:"Purple",prevo:"snubbull",evoLevel:23,eggGroups:["Ground","Fairy"]},
+snubbull:{num:209,species:"Snubbull",types:["Fairy"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:60,atk:80,def:50,spa:40,spd:40,spe:30},abilities:{0:"Intimidate",1:"Run Away",DW:"Rattled"},heightm:0.6,weightkg:7.8,color:"Pink",evos:["granbull"],eggGroups:["Ground","Fairy"]},
+granbull:{num:210,species:"Granbull",types:["Fairy"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:90,atk:120,def:75,spa:60,spd:60,spe:45},abilities:{0:"Intimidate",1:"Quick Feet",DW:"Rattled"},heightm:1.4,weightkg:48.7,color:"Purple",prevo:"snubbull",evoLevel:23,eggGroups:["Ground","Fairy"]},
qwilfish:{num:211,species:"Qwilfish",types:["Water","Poison"],baseStats:{hp:65,atk:95,def:75,spa:55,spd:55,spe:85},abilities:{0:"Poison Point",1:"Swift Swim",DW:"Intimidate"},heightm:0.5,weightkg:3.9,color:"Gray",eggGroups:["Water 2"]},
scizor:{num:212,species:"Scizor",types:["Bug","Steel"],baseStats:{hp:70,atk:130,def:100,spa:55,spd:80,spe:65},abilities:{0:"Swarm",1:"Technician",DW:"Light Metal"},heightm:1.8,weightkg:118,color:"Red",prevo:"scyther",evoLevel:1,eggGroups:["Bug"]},
shuckle:{num:213,species:"Shuckle",types:["Bug","Rock"],baseStats:{hp:20,atk:10,def:230,spa:10,spd:230,spe:5},abilities:{0:"Sturdy",1:"Gluttony",DW:"Contrary"},heightm:0.6,weightkg:20.5,color:"Yellow",eggGroups:["Bug"]},
@@ -279,9 +279,9 @@ taillow:{num:276,species:"Taillow",types:["Normal","Flying"],baseStats:{hp:40,at
swellow:{num:277,species:"Swellow",types:["Normal","Flying"],baseStats:{hp:60,atk:85,def:60,spa:50,spd:50,spe:125},abilities:{0:"Guts",DW:"Scrappy"},heightm:0.7,weightkg:19.8,color:"Blue",prevo:"taillow",evoLevel:22,eggGroups:["Flying"]},
wingull:{num:278,species:"Wingull",types:["Water","Flying"],baseStats:{hp:40,atk:30,def:30,spa:55,spd:30,spe:85},abilities:{0:"Keen Eye",DW:"Rain Dish"},heightm:0.6,weightkg:9.5,color:"White",evos:["pelipper"],eggGroups:["Water 1","Flying"]},
pelipper:{num:279,species:"Pelipper",types:["Water","Flying"],baseStats:{hp:60,atk:50,def:100,spa:85,spd:70,spe:65},abilities:{0:"Keen Eye",DW:"Rain Dish"},heightm:1.2,weightkg:28,color:"Yellow",prevo:"wingull",evoLevel:25,eggGroups:["Water 1","Flying"]},
-ralts:{num:280,species:"Ralts",types:["Psychic"],baseStats:{hp:28,atk:25,def:25,spa:45,spd:35,spe:40},abilities:{0:"Synchronize",1:"Trace",DW:"Telepathy"},heightm:0.4,weightkg:6.6,color:"White",evos:["kirlia"],eggGroups:["Indeterminate"]},
-kirlia:{num:281,species:"Kirlia",types:["Psychic"],baseStats:{hp:38,atk:35,def:35,spa:65,spd:55,spe:50},abilities:{0:"Synchronize",1:"Trace",DW:"Telepathy"},heightm:0.8,weightkg:20.2,color:"White",prevo:"ralts",evos:["gardevoir","gallade"],evoLevel:20,eggGroups:["Indeterminate"]},
-gardevoir:{num:282,species:"Gardevoir",types:["Psychic"],baseStats:{hp:68,atk:65,def:65,spa:125,spd:115,spe:80},abilities:{0:"Synchronize",1:"Trace",DW:"Telepathy"},heightm:1.6,weightkg:48.4,color:"White",prevo:"kirlia",evoLevel:30,eggGroups:["Indeterminate"]},
+ralts:{num:280,species:"Ralts",types:["Psychic","Fairy"],baseStats:{hp:28,atk:25,def:25,spa:45,spd:35,spe:40},abilities:{0:"Synchronize",1:"Trace",DW:"Telepathy"},heightm:0.4,weightkg:6.6,color:"White",evos:["kirlia"],eggGroups:["Indeterminate"]},
+kirlia:{num:281,species:"Kirlia",types:["Psychic","Fairy"],baseStats:{hp:38,atk:35,def:35,spa:65,spd:55,spe:50},abilities:{0:"Synchronize",1:"Trace",DW:"Telepathy"},heightm:0.8,weightkg:20.2,color:"White",prevo:"ralts",evos:["gardevoir","gallade"],evoLevel:20,eggGroups:["Indeterminate"]},
+gardevoir:{num:282,species:"Gardevoir",types:["Psychic","Fairy"],baseStats:{hp:68,atk:65,def:65,spa:125,spd:115,spe:80},abilities:{0:"Synchronize",1:"Trace",DW:"Telepathy"},heightm:1.6,weightkg:48.4,color:"White",prevo:"kirlia",evoLevel:30,eggGroups:["Indeterminate"]},
surskit:{num:283,species:"Surskit",types:["Bug","Water"],baseStats:{hp:40,atk:30,def:32,spa:50,spd:52,spe:65},abilities:{0:"Swift Swim",DW:"Rain Dish"},heightm:0.5,weightkg:1.7,color:"Blue",evos:["masquerain"],eggGroups:["Water 1","Bug"]},
masquerain:{num:284,species:"Masquerain",types:["Bug","Flying"],baseStats:{hp:70,atk:60,def:62,spa:80,spd:82,spe:60},abilities:{0:"Intimidate",DW:"Unnerve"},heightm:0.8,weightkg:3.6,color:"Blue",prevo:"surskit",evoLevel:22,eggGroups:["Water 1","Bug"]},
shroomish:{num:285,species:"Shroomish",types:["Grass"],baseStats:{hp:60,atk:40,def:60,spa:40,spd:60,spe:35},abilities:{0:"Effect Spore",1:"Poison Heal",DW:"Quick Feet"},heightm:0.4,weightkg:4.5,color:"Brown",evos:["breloom"],eggGroups:["Fairy","Plant"]},
@@ -297,12 +297,12 @@ loudred:{num:294,species:"Loudred",types:["Normal"],baseStats:{hp:84,atk:71,def:
exploud:{num:295,species:"Exploud",types:["Normal"],baseStats:{hp:104,atk:91,def:63,spa:91,spd:63,spe:68},abilities:{0:"Soundproof",DW:"Scrappy"},heightm:1.5,weightkg:84,color:"Blue",prevo:"loudred",evoLevel:40,eggGroups:["Monster","Ground"]},
makuhita:{num:296,species:"Makuhita",types:["Fighting"],genderRatio:{M:0.75,F:0.25},baseStats:{hp:72,atk:60,def:30,spa:20,spd:30,spe:25},abilities:{0:"Thick Fat",1:"Guts",DW:"Sheer Force"},heightm:1,weightkg:86.4,color:"Yellow",evos:["hariyama"],eggGroups:["Humanshape"]},
hariyama:{num:297,species:"Hariyama",types:["Fighting"],genderRatio:{M:0.75,F:0.25},baseStats:{hp:144,atk:120,def:60,spa:40,spd:60,spe:50},abilities:{0:"Thick Fat",1:"Guts",DW:"Sheer Force"},heightm:2.3,weightkg:253.8,color:"Brown",prevo:"makuhita",evoLevel:24,eggGroups:["Humanshape"]},
-azurill:{num:298,species:"Azurill",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:50,atk:20,def:40,spa:20,spd:40,spe:20},abilities:{0:"Thick Fat",1:"Huge Power",DW:"Sap Sipper"},heightm:0.2,weightkg:2,color:"Blue",evos:["marill"],eggGroups:["No Eggs"]},
+azurill:{num:298,species:"Azurill",types:["Normal","Fairy"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:50,atk:20,def:40,spa:20,spd:40,spe:20},abilities:{0:"Thick Fat",1:"Huge Power",DW:"Sap Sipper"},heightm:0.2,weightkg:2,color:"Blue",evos:["marill"],eggGroups:["No Eggs"]},
nosepass:{num:299,species:"Nosepass",types:["Rock"],baseStats:{hp:30,atk:45,def:135,spa:45,spd:90,spe:30},abilities:{0:"Sturdy",1:"Magnet Pull",DW:"Sand Force"},heightm:1,weightkg:97,color:"Gray",evos:["probopass"],eggGroups:["Mineral"]},
skitty:{num:300,species:"Skitty",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:50,atk:45,def:45,spa:35,spd:35,spe:50},abilities:{0:"Cute Charm",1:"Normalize",DW:"Wonder Skin"},heightm:0.6,weightkg:11,color:"Pink",evos:["delcatty"],eggGroups:["Ground","Fairy"]},
delcatty:{num:301,species:"Delcatty",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:70,atk:65,def:65,spa:55,spd:55,spe:70},abilities:{0:"Cute Charm",1:"Normalize",DW:"Wonder Skin"},heightm:1.1,weightkg:32.6,color:"Purple",prevo:"skitty",evoLevel:1,eggGroups:["Ground","Fairy"]},
sableye:{num:302,species:"Sableye",types:["Dark","Ghost"],baseStats:{hp:50,atk:75,def:75,spa:65,spd:65,spe:50},abilities:{0:"Keen Eye",1:"Stall",DW:"Prankster"},heightm:0.5,weightkg:11,color:"Purple",eggGroups:["Humanshape"]},
-mawile:{num:303,species:"Mawile",types:["Steel"],baseStats:{hp:50,atk:85,def:85,spa:55,spd:55,spe:50},abilities:{0:"Hyper Cutter",1:"Intimidate",DW:"Sheer Force"},heightm:0.6,weightkg:11.5,color:"Black",eggGroups:["Ground","Fairy"]},
+mawile:{num:303,species:"Mawile",types:["Steel","Fairy"],baseStats:{hp:50,atk:85,def:85,spa:55,spd:55,spe:50},abilities:{0:"Hyper Cutter",1:"Intimidate",DW:"Sheer Force"},heightm:0.6,weightkg:11.5,color:"Black",eggGroups:["Ground","Fairy"]},
aron:{num:304,species:"Aron",types:["Steel","Rock"],baseStats:{hp:50,atk:70,def:100,spa:40,spd:40,spe:30},abilities:{0:"Sturdy",1:"Rock Head",DW:"Heavy Metal"},heightm:0.4,weightkg:60,color:"Gray",evos:["lairon"],eggGroups:["Monster"]},
lairon:{num:305,species:"Lairon",types:["Steel","Rock"],baseStats:{hp:60,atk:90,def:140,spa:50,spd:50,spe:40},abilities:{0:"Sturdy",1:"Rock Head",DW:"Heavy Metal"},heightm:0.9,weightkg:120,color:"Gray",prevo:"aron",evos:["aggron"],evoLevel:32,eggGroups:["Monster"]},
aggron:{num:306,species:"Aggron",types:["Steel","Rock"],baseStats:{hp:70,atk:110,def:180,spa:60,spd:60,spe:50},abilities:{0:"Sturdy",1:"Rock Head",DW:"Heavy Metal"},heightm:2.1,weightkg:360,color:"Gray",prevo:"lairon",evoLevel:42,eggGroups:["Monster"]},
@@ -513,6 +513,7 @@ arceusbug:{num:493,species:"Arceus-Bug",baseSpecies:"Arceus",forme:"Bug",formeLe
arceusdark:{num:493,species:"Arceus-Dark",baseSpecies:"Arceus",forme:"Dark",formeLetter:"D",types:["Dark"],gender:"N",baseStats:{hp:120,atk:120,def:120,spa:120,spd:120,spe:120},abilities:{0:"Multitype"},heightm:3.2,weightkg:320,color:"Gray",eggGroups:["No Eggs"]},
arceusdragon:{num:493,species:"Arceus-Dragon",baseSpecies:"Arceus",forme:"Dragon",formeLetter:"D",types:["Dragon"],gender:"N",baseStats:{hp:120,atk:120,def:120,spa:120,spd:120,spe:120},abilities:{0:"Multitype"},heightm:3.2,weightkg:320,color:"Gray",eggGroups:["No Eggs"]},
arceuselectric:{num:493,species:"Arceus-Electric",baseSpecies:"Arceus",forme:"Electric",formeLetter:"E",types:["Electric"],gender:"N",baseStats:{hp:120,atk:120,def:120,spa:120,spd:120,spe:120},abilities:{0:"Multitype"},heightm:3.2,weightkg:320,color:"Gray",eggGroups:["No Eggs"]},
+arceusfairy:{num:493,species:"Arceus-Fairy",baseSpecies:"Arceus",forme:"Fairy",formeLetter:"F",types:["Fairy"],gender:"N",baseStats:{hp:120,atk:120,def:120,spa:120,spd:120,spe:120},abilities:{0:"Multitype"},heightm:3.2,weightkg:320,color:"Gray",eggGroups:["No Eggs"]},
arceusfighting:{num:493,species:"Arceus-Fighting",baseSpecies:"Arceus",forme:"Fighting",formeLetter:"F",types:["Fighting"],gender:"N",baseStats:{hp:120,atk:120,def:120,spa:120,spd:120,spe:120},abilities:{0:"Multitype"},heightm:3.2,weightkg:320,color:"Gray",eggGroups:["No Eggs"]},
arceusfire:{num:493,species:"Arceus-Fire",baseSpecies:"Arceus",forme:"Fire",formeLetter:"F",types:["Fire"],gender:"N",baseStats:{hp:120,atk:120,def:120,spa:120,spd:120,spe:120},abilities:{0:"Multitype"},heightm:3.2,weightkg:320,color:"Gray",eggGroups:["No Eggs"]},
arceusflying:{num:493,species:"Arceus-Flying",baseSpecies:"Arceus",forme:"Flying",formeLetter:"F",types:["Flying"],gender:"N",baseStats:{hp:120,atk:120,def:120,spa:120,spd:120,spe:120},abilities:{0:"Multitype"},heightm:3.2,weightkg:320,color:"Gray",eggGroups:["No Eggs"]},
@@ -694,6 +695,75 @@ genesectdouse:{num:649,species:"Genesect-Douse",baseSpecies:"Genesect",forme:"Do
genesectshock:{num:649,species:"Genesect-Shock",baseSpecies:"Genesect",forme:"Shock",formeLetter:"S",types:["Bug","Steel"],gender:"N",baseStats:{hp:71,atk:120,def:95,spa:120,spd:95,spe:99},abilities:{0:"Download"},heightm:1.5,weightkg:82.5,color:"Purple",eggGroups:["No Eggs"]},
genesectburn:{num:649,species:"Genesect-Burn",baseSpecies:"Genesect",forme:"Burn",formeLetter:"B",types:["Bug","Steel"],gender:"N",baseStats:{hp:71,atk:120,def:95,spa:120,spd:95,spe:99},abilities:{0:"Download"},heightm:1.5,weightkg:82.5,color:"Purple",eggGroups:["No Eggs"]},
genesectchill:{num:649,species:"Genesect-Chill",baseSpecies:"Genesect",forme:"Chill",formeLetter:"C",types:["Bug","Steel"],gender:"N",baseStats:{hp:71,atk:120,def:95,spa:120,spd:95,spe:99},abilities:{0:"Download"},heightm:1.5,weightkg:82.5,color:"Purple",eggGroups:["No Eggs"]},
+chespin:{num:650,species:"Chespin",types:["Grass"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:50,atk:60,def:80,spa:40,spd:30,spe:30},abilities:{0:"Overgrow"},heightm:0.4,weightkg:9,color:"",evos:["quilladin"],eggGroups:[""]},
+quilladin:{num:651,species:"Quilladin",types:["Grass"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:70,atk:80,def:100,spa:60,spd:50,spe:50},abilities:{0:"Overgrow"},heightm:0.7,weightkg:29,color:"",prevo:"chespin",evos:["chesnaught"],eggGroups:[""]},
+chesnaught:{num:652,species:"Chesnaught",types:["Grass","Fighting"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:90,atk:100,def:120,spa:80,spd:70,spe:70},abilities:{0:"Overgrow"},heightm:0,weightkg:0,color:"",prevo:"quilladin",eggGroups:[""]},
+fennekin:{num:653,species:"Fennekin",types:["Fire"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:38,atk:36,def:36,spa:74,spd:58,spe:68},abilities:{0:"Blaze"},heightm:0.4,weightkg:9.4,color:"",evos:["braixen"],eggGroups:[""]},
+braixen:{num:654,species:"Braixen",types:["Fire"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:58,atk:56,def:56,spa:94,spd:78,spe:88},abilities:{0:"Blaze"},heightm:1,weightkg:14.5,color:"",prevo:"fennekin",evos:["delphox"],eggGroups:[""]},
+delphox:{num:655,species:"Delphox",types:["Fire","Psychic"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:78,atk:76,def:76,spa:114,spd:98,spe:108},abilities:{0:"Blaze"},heightm:0,weightkg:0,color:"",prevo:"delphox",eggGroups:[""]},
+froakie:{num:656,species:"Froakie",types:["Water"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:40,atk:50,def:35,spa:60,spd:35,spe:80},abilities:{0:"Torrent"},heightm:0.3,weightkg:7,color:"",evos:["frogadier"],eggGroups:[""]},
+frogadier:{num:657,species:"Frogadier",types:["Water"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:60,atk:70,def:55,spa:80,spd:55,spe:100},abilities:{0:"Torrent"},heightm:0.6,weightkg:10.9,color:"",prevo:"froakie",evos:["greninja"],eggGroups:[""]},
+greninja:{num:658,species:"Greninja",types:["Water","Dark"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:80,atk:90,def:75,spa:100,spd:75,spe:120},abilities:{0:"Torrent"},heightm:0,weightkg:0,color:"",prevo:"frogadier",eggGroups:[""]},
+bunnelby:{num:659,species:"Bunnelby",types:["Normal"],baseStats:{hp:55,atk:40,def:50,spa:25,spd:50,spe:70},abilities:{0:"Pickup",1:"Cheek Pouch"},heightm:0.4,weightkg:5,color:"",evos:["diggersby"],eggGroups:[""]},
+diggersby:{num:660,species:"Diggersby",types:["Normal","Ground"],baseStats:{hp:75,atk:60,def:70,spa:45,spd:70,spe:90},abilities:{0:"Pickup",1:"Cheek Pouch"},heightm:0,weightkg:0,color:"",prevo:"bunnelby",eggGroups:[""]},
+fletchling:{num:661,species:"Fletchling",types:["Normal","Flying"],baseStats:{hp:40,atk:45,def:45,spa:15,spd:30,spe:65},abilities:{0:"Big Pecks"},heightm:0.3,weightkg:1.7,color:"",evos:["fletchinder"],eggGroups:[""]},
+fletchinder:{num:662,species:"Fletchinder",types:["Fire","Flying"],baseStats:{hp:60,atk:65,def:65,spa:35,spd:50,spe:85},abilities:{0:"Big Pecks"},heightm:0,weightkg:0,color:"",prevo:"Fletchling",evos:["talonflame"],eggGroups:[""]},
+talonflame:{num:663,species:"Talonflame",types:["Fire","Flying"],baseStats:{hp:70,atk:80,def:70,spa:80,spd:70,spe:130},abilities:{0:"Flame Body"},heightm:1.2,weightkg:24.5,color:"",prevo:"fletchinder",eggGroups:[""]},
+scatterbug:{num:664,species:"Scatterbug",types:["Bug"],baseStats:{hp:40,atk:10,def:10,spa:60,spd:10,spe:60},abilities:{0:"Shed Skin"},heightm:0,weightkg:0,color:"",evos:["spewpa"],eggGroups:[""]},
+spewpa:{num:665,species:"Spewpa",types:["Bug"],baseStats:{hp:60,atk:30,def:30,spa:80,spd:30,spe:80},abilities:{0:"Shield Dust",1:"Compoundeyes"},heightm:0,weightkg:0,color:"",prevo:"scatterbug",evos:["vivillon"],eggGroups:[""]},
+vivillon:{num:666,species:"Vivillon",types:["Bug","Flying"],baseStats:{hp:80,atk:50,def:50,spa:100,spd:50,spe:100},abilities:{0:"Shield Dust",1:"Compoundeyes"},heightm:0,weightkg:0,color:"",prevo:"spewpa",eggGroups:[""]},
+litleo:{num:667,species:"Litleo",types:["Fire","Normal"],baseStats:{hp:65,atk:55,def:55,spa:90,spd:45,spe:95},abilities:{0:"Rivalry",1:"Unnerve"},heightm:0.6,weightkg:13.5,color:"",evos:["pyroar"],eggGroups:[""]},
+pyroar:{num:668,species:"Pyroar",types:["Fire","Normal"],baseStats:{hp:85,atk:75,def:75,spa:110,spd:65,spe:105},abilities:{0:"Rivalry",1:"Unnerve"},heightm:1.5,weightkg:81.5,color:"",prevo:"litleo",eggGroups:[""]},
+flabebe:{num:669,species:"Flabebe",types:["Fairy"],baseStats:{hp:40,atk:40,def:30,spa:65,spd:60,spe:35},abilities:{0:"Flower Veil"},heightm:0.1,weightkg:0.1,color:"",evos:["floette"],eggGroups:[""]},
+floette:{num:670,species:"Floette",types:["Fairy"],baseStats:{hp:56,atk:55,def:47,spa:92,spd:104,spe:59},abilities:{0:"Flower Veil"},heightm:0,weightkg:0,color:"",prevo:"flabebe",evos:["florges"],eggGroups:[""]},
+florges:{num:671,species:"Florges",types:["Fairy"],baseStats:{hp:72,atk:70,def:64,spa:118,spd:148,spe:83},abilities:{0:"Flower Veil"},heightm:0,weightkg:0,color:"",prevo:"floette",eggGroups:[""]},
+skiddo:{num:672,species:"Skiddo",types:["Grass"],baseStats:{hp:105,atk:85,def:45,spa:70,spd:60,spe:50},abilities:{0:"Sap Sipper"},heightm:0.9,weightkg:31,color:"",evos:["gogoat"],eggGroups:[""]},
+gogoat:{num:673,species:"Gogoat",types:["Grass"],baseStats:{hp:125,atk:105,def:65,spa:90,spd:80,spe:70},abilities:{0:"Sap Sipper"},heightm:1.7,weightkg:91,color:"",prevo:"skiddo",eggGroups:[""]},
+pancham:{num:674,species:"Pancham",types:["Fighting"],baseStats:{hp:90,atk:110,def:60,spa:60,spd:60,spe:50},abilities:{0:"Iron Fist",1:"Mold Breaker"},heightm:0.6,weightkg:8,color:"",evos:["pangoro"],eggGroups:[""]},
+pangoro:{num:675,species:"Pangoro",types:["Fighting","Dark"],baseStats:{hp:110,atk:130,def:80,spa:80,spd:80,spe:70},abilities:{0:"Iron Fist",1:"Mold Breaker"},heightm:2.1,weightkg:136,color:"",prevo:"pancham",eggGroups:[""]},
+furfrou:{num:676,species:"Furfrou",types:["Normal"],baseStats:{hp:75,atk:80,def:55,spa:65,spd:90,spe:100},abilities:{0:"Fur Coat"},heightm:1.2,weightkg:28,color:"",eggGroups:[""]},
+espurr:{num:677,species:"Espurr",types:["Psychic"],baseStats:{hp:60,atk:22,def:62,spa:72,spd:72,spe:95},abilities:{0:"Keen Eye",1:"Infiltrator"},heightm:0,weightkg:0,color:"",evos:["meowstic"],eggGroups:[""]},
+meowstic:{num:678,species:"Meowstic",types:["Psychic"],baseStats:{hp:80,atk:42,def:82,spa:92,spd:92,spe:105},abilities:{0:"Keen Eye",1:"Infiltrator"},heightm:0.6,weightkg:8.5,color:"",prevo:"espurr",eggGroups:[""]},
+honedge:{num:679,species:"Honedge",types:["Steel","Ghost"],baseStats:{hp:40,atk:90,def:130,spa:35,spd:30,spe:10},abilities:{0:"No Guard"},heightm:0.8,weightkg:2,color:"",evos:["doublade"],eggGroups:[""]},
+doublade:{num:680,species:"Doublade",types:["Steel","Ghost"],baseStats:{hp:60,atk:110,def:150,spa:55,spd:50,spe:30},abilities:{0:"No Guard"},heightm:0.8,weightkg:4.5,color:"",prevo:"honedge",evos:["aegislash"],eggGroups:[""]},
+aegislash:{num:681,species:"Aegislash",types:["Steel","Ghost"],baseStats:{hp:60,atk:60,def:150,spa:60,spd:150,spe:60},abilities:{0:"Stance Change"},heightm:0,weightkg:0,color:"",prevo:"doublade",eggGroups:[""]},
+spritzee:{num:682,species:"Spritzee",types:["Fairy"],baseStats:{hp:80,atk:45,def:55,spa:75,spd:70,spe:10},abilities:{0:"Healer"},heightm:0.2,weightkg:0.5,color:"",evos:["aromatisse"],eggGroups:[""]},
+aromatisse:{num:683,species:"Aromatisse",types:["Fairy"],baseStats:{hp:100,atk:65,def:75,spa:95,spd:90,spe:30},abilities:{0:"Healer"},heightm:0.8,weightkg:15.5,color:"",prevo:"spritzee",eggGroups:[""]},
+swirlix:{num:684,species:"Swirlix",types:["Fairy"],baseStats:{hp:80,atk:75,def:70,spa:45,spd:55,spe:10},abilities:{0:"Sweet Veil"},heightm:0.4,weightkg:3.5,color:"",evos:["slurpuff"],eggGroups:[""]},
+slurpuff:{num:685,species:"Slurpuff",types:["Fairy"],baseStats:{hp:100,atk:95,def:90,spa:65,spd:75,spe:30},abilities:{0:"Sweet Veil"},heightm:0.8,weightkg:5,color:"",prevo:"swirlix",eggGroups:[""]},
+inkay:{num:686,species:"Inkay",types:["Dark","Psychic"],baseStats:{hp:60,atk:80,def:70,spa:50,spd:40,spe:50},abilities:{0:"Contrary",1:"Suction Cups"},heightm:0.4,weightkg:3.5,color:"",evos:["malamar"],eggGroups:[""]},
+malamar:{num:687,species:"Malamar",types:["Dark","Psychic"],baseStats:{hp:80,atk:100,def:90,spa:70,spd:60,spe:70},abilities:{0:"Contrary",1:"Suction Cups"},heightm:1.5,weightkg:47,color:"",prevo:"inkay",eggGroups:[""]},
+binacle:{num:688,species:"Binacle",types:["Water","Rock"],baseStats:{hp:50,atk:95,def:95,spa:30,spd:80,spe:60},abilities:{0:"Tough Claws",1:"Sniper"},heightm:0,weightkg:0,color:"",evos:["barbacle"],eggGroups:[""]},
+barbaracle:{num:689,species:"Barbaracle",types:["Water","Rock"],baseStats:{hp:70,atk:115,def:115,spa:50,spd:100,spe:80},abilities:{0:"Tough Claws",1:"Sniper"},heightm:0,weightkg:0,color:"",prevo:"binacle",eggGroups:[""]},
+skrelp:{num:690,species:"Skrelp",types:["Poison","Water"],baseStats:{hp:48,atk:65,def:70,spa:72,spd:111,spe:41},abilities:{0:"Poison Point",1:"Poison Touch"},heightm:0.5,weightkg:7.3,color:"",evos:["dragalge"],eggGroups:[""]},
+dragalge:{num:691,species:"Dragalge",types:["Poison","Dragon"],baseStats:{hp:68,atk:85,def:90,spa:92,spd:131,spe:61},abilities:{0:"Poison Point",1:"Poison Touch"},heightm:0,weightkg:0,color:"",prevo:"skrelp",eggGroups:[""]},
+clauncher:{num:692,species:"Clauncher",types:["Water"],baseStats:{hp:50,atk:50,def:80,spa:110,spd:80,spe:35},abilities:{0:"Mega Launcher"},heightm:0.5,weightkg:8.3,color:"",evos:["clawitzer"],eggGroups:[""]},
+clawitzer:{num:693,species:"Clawitzer",types:["Water"],baseStats:{hp:70,atk:70,def:100,spa:130,spd:100,spe:55},abilities:{0:"Mega Launcher"},heightm:0,weightkg:0,color:"",prevo:"clauncher",eggGroups:[""]},
+helioptile:{num:694,species:"Helioptile",types:["Electric","Normal"],baseStats:{hp:40,atk:45,def:30,spa:100,spd:80,spe:100},abilities:{0:"Sand Veil",1:"Dry Skin"},heightm:0.5,weightkg:6,color:"",evos:["heliolisk"],eggGroups:[""]},
+heliolisk:{num:695,species:"Heliolisk",types:["Electric","Normal"],baseStats:{hp:60,atk:65,def:50,spa:120,spd:100,spe:120},abilities:{0:"Sand Veil",1:"Dry Skin"},heightm:0,weightkg:0,color:"",prevo:"helioptile",eggGroups:[""]},
+tyrunt:{num:696,species:"Tyrunt",types:["Rock","Dragon"],baseStats:{hp:75,atk:105,def:100,spa:60,spd:40,spe:55},abilities:{0:"Strong Jaw"},heightm:0.8,weightkg:26,color:"",evos:["tyrantrum"],eggGroups:[""]},
+tyrantrum:{num:697,species:"Tyrantrum",types:["Rock","Dragon"],baseStats:{hp:95,atk:125,def:120,spa:80,spd:60,spe:75},abilities:{0:"Strong Jaw"},heightm:2.5,weightkg:270,color:"",prevo:"tyrunt",eggGroups:[""]},
+amaura:{num:698,species:"Amaura",types:["Rock","Ice"],baseStats:{hp:73,atk:50,def:48,spa:73,spd:58,spe:40},abilities:{0:"Refrigerate"},heightm:1.3,weightkg:25.2,color:"",evos:["aurorus"],eggGroups:[""]},
+aurorus:{num:699,species:"Aurorus",types:["Rock","Ice"],baseStats:{hp:127,atk:82,def:67,spa:120,spd:92,spe:70},abilities:{0:"Refrigerate"},heightm:2.7,weightkg:225,color:"",prevo:"amaura",eggGroups:[""]},
+sylveon:{num:700,species:"Sylveon",types:["Fairy"],baseStats:{hp:95,atk:60,def:65,spa:110,spd:130,spe:65},abilities:{0:"Cute Charm",1:"Synchronize"},heightm:1,weightkg:23.5,color:"",prevo:"eevee",eggGroups:[""]},
+hawlucha:{num:701,species:"Hawlucha",types:["Fighting","Flying"],baseStats:{hp:70,atk:95,def:80,spa:65,spd:70,spe:110},abilities:{0:"Limber",1:"Unburden"},heightm:0,weightkg:0,color:"",eggGroups:[""]},
+dedenne:{num:702,species:"Dedenne",types:["Electric","Fairy"],baseStats:{hp:80,atk:80,def:80,spa:80,spd:80,spe:80},abilities:{0:"Pickup",1:"Cheek Pouch"},heightm:0.2,weightkg:2.2,color:"",eggGroups:[""]},
+carbink:{num:703,species:"Carbink",types:["Rock","Fairy"],baseStats:{hp:42,atk:56,def:152,spa:43,spd:152,spe:50},abilities:{0:"Clear Body"},heightm:0,weightkg:0,color:"",eggGroups:[""]},
+goomy:{num:704,species:"Goomy",types:["Dragon"],baseStats:{hp:40,atk:50,def:30,spa:70,spd:100,spe:45},abilities:{0:"Hydration"},heightm:0,weightkg:0,color:"",evos:["sliggoo"],eggGroups:[""]},
+sliggoo:{num:705,species:"Sliggoo",types:["Dragon"],baseStats:{hp:60,atk:70,def:50,spa:90,spd:120,spe:65},abilities:{0:"Hydration"},heightm:0,weightkg:0,color:"",prevo:"goomy",evos:["goodra"],eggGroups:[""]},
+goodra:{num:706,species:"Goodra",types:["Dragon"],baseStats:{hp:85,atk:95,def:80,spa:117,spd:142,spe:90},abilities:{0:"Hydration",1:"Sap Sipper"},heightm:0,weightkg:0,color:"",prevo:"sliggoo",eggGroups:[""]},
+klefki:{num:707,species:"Klefki",types:["Steel","Fairy"],baseStats:{hp:50,atk:80,def:90,spa:80,spd:80,spe:70},abilities:{0:"Prankster"},heightm:0,weightkg:0,color:"",eggGroups:[""]},
+phantump:{num:708,species:"Phantump",types:["Ghost","Grass"],baseStats:{hp:70,atk:100,def:50,spa:50,spd:60,spe:30},abilities:{0:"Natural Cure",1:"Frisk"},heightm:0,weightkg:0,color:"",evos:["trevenant"],eggGroups:[""]},
+trevenant:{num:709,species:"Trevenant",types:["Ghost","Grass"],baseStats:{hp:90,atk:120,def:70,spa:70,spd:80,spe:50},abilities:{0:"Natural Cure",1:"Frisk"},heightm:0,weightkg:0,color:"",prevo:"phantump",eggGroups:[""]},
+pumpkaboo:{num:710,species:"Pumpkaboo",types:["Ghost","Grass"],baseStats:{hp:50,atk:60,def:70,spa:50,spd:40,spe:40},abilities:{0:"Frisk",1:"Pickup"},heightm:0,weightkg:0,color:"",evos:["gourgeist"],eggGroups:[""]},
+gourgeist:{num:711,species:"Gourgeist",types:["Ghost","Grass"],baseStats:{hp:70,atk:80,def:120,spa:50,spd:75,spe:90},abilities:{0:"Frisk",1:"Pickup"},heightm:0,weightkg:0,color:"",prevo:"pumpkaboo",eggGroups:[""]},
+bergmite:{num:712,species:"Bergmite",types:["Ice"],baseStats:{hp:80,atk:90,def:162,spa:25,spd:17,spe:7},abilities:{0:"Own Tempo",1:"Ice Body"},heightm:0,weightkg:0,color:"",evos:["avalugg"],eggGroups:[""]},
+avalugg:{num:713,species:"Avalugg",types:["Ice"],baseStats:{hp:100,atk:110,def:182,spa:45,spd:37,spe:27},abilities:{0:"Own Tempo",1:"Ice Body"},heightm:0,weightkg:0,color:"",prevo:"bergmite",eggGroups:[""]},
+noibat:{num:714,species:"Noibat",types:["Flying","Dragon"],baseStats:{hp:70,atk:60,def:60,spa:82,spd:60,spe:97},abilities:{0:"Frisk",1:"Infiltrator"},heightm:0,weightkg:0,color:"",evos:["noviern"],eggGroups:[""]},
+noivern:{num:715,species:"Noivern",types:["Flying","Dragon"],baseStats:{hp:90,atk:80,def:80,spa:102,spd:80,spe:117},abilities:{0:"Frisk",1:"Infiltrator"},heightm:1.5,weightkg:85,color:"",prevo:"noibat",eggGroups:[""]},
+xerneas:{num:716,species:"Xerneas",types:["Fairy"],baseStats:{hp:122,atk:135,def:122,spa:137,spd:101,spe:106},abilities:{0:"Fairy Aura"},heightm:0,weightkg:0,color:"",eggGroups:[""]},
+yveltal:{num:717,species:"Yveltal",types:["Dark","Flying"],baseStats:{hp:78,atk:137,def:90,spa:137,spd:90,spe:100},abilities:{0:"Dark Aura"},heightm:0,weightkg:0,color:"",eggGroups:[""]},
+zygarde:{num:718,species:"Zygarde",types:["Dragon","Ground"],baseStats:{hp:105,atk:100,def:130,spa:90,spd:95,spe:105},abilities:{0:"Aura Break"},heightm:0,weightkg:0,color:"",eggGroups:[""]},
missingno:{num:0,species:"Missingno.",types:["Bird","Normal"],baseStats:{hp:33,atk:136,def:0,spa:6,spd:6,spe:29},abilities:{0:"",DW:""},heightm:3,weightkg:1590.8,color:"Gray",eggGroups:["No Eggs"]},
tomohawk:{num:-1,species:"Tomohawk",types:["Flying","Fighting"],baseStats:{hp:105,atk:60,def:90,spa:115,spd:80,spe:85},abilities:{0:"Intimidate",1:"Prankster",DW:"Justified"},heightm:1.27,weightkg:37.2,color:"",eggGroups:["Ground","Flying"]},
necturna:{num:-2,species:"Necturna",types:["Grass","Ghost"],gender:"F",baseStats:{hp:64,atk:120,def:100,spa:85,spd:120,spe:81},abilities:{0:"Forewarn",DW:"Telepathy"},heightm:1.65,weightkg:49.6,color:"Black",eggGroups:["Plant","Ground"]},
diff --git a/data/scripts.js b/data/scripts.js
index 641fb2b70a..f31488eb82 100644
--- a/data/scripts.js
+++ b/data/scripts.js
@@ -1,5 +1,5 @@
exports.BattleScripts = {
- gen: 5,
+ gen: 6,
runMove: function(move, pokemon, target, sourceEffect) {
if (!sourceEffect && toId(move) !== 'struggle') {
var changedMove = this.runEvent('OverrideDecision', pokemon, target, move);
diff --git a/data/typechart.js b/data/typechart.js
index 0be31f339b..c188915285 100644
--- a/data/typechart.js
+++ b/data/typechart.js
@@ -5,6 +5,7 @@ exports.BattleTypeChart = {
"Dark": 0,
"Dragon": 0,
"Electric": 0,
+ "Fairy": 0,
"Fighting": 2,
"Fire": 1,
"Flying": 1,
@@ -19,7 +20,7 @@ exports.BattleTypeChart = {
"Steel": 0,
"Water": 0
},
- "HPivs": {"atk":30,"def":30,"spd":30}
+ "HPivs": {"spd":30,"spe":30}
},
"Dark": {
"damageTaken": {
@@ -27,6 +28,7 @@ exports.BattleTypeChart = {
"Dark": 2,
"Dragon": 0,
"Electric": 0,
+ "Fairy": 1,
"Fighting": 1,
"Fire": 0,
"Flying": 0,
@@ -41,7 +43,7 @@ exports.BattleTypeChart = {
"Steel": 0,
"Water": 0
},
- "HPivs": {}
+ "HPivs": {"atk":30}
},
"Dragon": {
"damageTaken": {
@@ -49,6 +51,7 @@ exports.BattleTypeChart = {
"Dark": 0,
"Dragon": 1,
"Electric": 2,
+ "Fairy": 1,
"Fighting": 0,
"Fire": 2,
"Flying": 0,
@@ -63,14 +66,16 @@ exports.BattleTypeChart = {
"Steel": 0,
"Water": 2
},
- "HPivs": {"atk":30}
+ "HPivs": {"def":30}
},
"Electric": {
"damageTaken": {
+ par: 3,
"Bug": 0,
"Dark": 0,
"Dragon": 0,
"Electric": 2,
+ "Fairy": 0,
"Fighting": 0,
"Fire": 0,
"Flying": 2,
@@ -87,12 +92,36 @@ exports.BattleTypeChart = {
},
"HPivs": {"spa":30}
},
+ "Fairy": {
+ "damageTaken": {
+ "Bug": 2,
+ "Dark": 2,
+ "Dragon": 3,
+ "Electric": 0,
+ "Fairy": 0,
+ "Fighting": 2,
+ "Fire": 0,
+ "Flying": 0,
+ "Ghost": 0,
+ "Grass": 0,
+ "Ground": 0,
+ "Ice": 0,
+ "Normal": 0,
+ "Poison": 1,
+ "Psychic": 0,
+ "Rock": 0,
+ "Steel": 1,
+ "Water": 0
+ },
+ "HPivs": {}
+ },
"Fighting": {
"damageTaken": {
"Bug": 2,
"Dark": 2,
"Dragon": 0,
"Electric": 0,
+ "Fairy": 1,
"Fighting": 0,
"Fire": 0,
"Flying": 1,
@@ -116,6 +145,7 @@ exports.BattleTypeChart = {
"Dark": 0,
"Dragon": 0,
"Electric": 0,
+ "Fairy": 2,
"Fighting": 0,
"Fire": 2,
"Flying": 0,
@@ -130,7 +160,7 @@ exports.BattleTypeChart = {
"Steel": 2,
"Water": 1
},
- "HPivs": {"atk":30,"spa":30,"spe":30}
+ "HPivs": {"def":30,"spa":30,"spe":30}
},
"Flying": {
"damageTaken": {
@@ -138,6 +168,7 @@ exports.BattleTypeChart = {
"Dark": 0,
"Dragon": 0,
"Electric": 1,
+ "Fairy": 0,
"Fighting": 2,
"Fire": 0,
"Flying": 0,
@@ -152,14 +183,16 @@ exports.BattleTypeChart = {
"Steel": 0,
"Water": 0
},
- "HPivs": {"hp":30,"atk":30,"def":30,"spa":30,"spd":30}
+ "HPivs": {"spa":30,"spd":30,"spe":30}
},
"Ghost": {
"damageTaken": {
+ trapping: 3,
"Bug": 2,
"Dark": 1,
"Dragon": 0,
"Electric": 0,
+ "Fairy": 0,
"Fighting": 3,
"Fire": 0,
"Flying": 0,
@@ -182,6 +215,7 @@ exports.BattleTypeChart = {
"Dark": 0,
"Dragon": 0,
"Electric": 2,
+ "Fairy": 0,
"Fighting": 0,
"Fire": 1,
"Flying": 1,
@@ -196,7 +230,7 @@ exports.BattleTypeChart = {
"Steel": 0,
"Water": 2
},
- "HPivs": {"atk":30,"spa":30}
+ "HPivs": {"def":30,"spa":30}
},
"Ground": {
"damageTaken": {
@@ -205,6 +239,7 @@ exports.BattleTypeChart = {
"Dark": 0,
"Dragon": 0,
"Electric": 3,
+ "Fairy": 0,
"Fighting": 0,
"Fire": 0,
"Flying": 0,
@@ -229,6 +264,7 @@ exports.BattleTypeChart = {
"Dark": 0,
"Dragon": 0,
"Electric": 0,
+ "Fairy": 0,
"Fighting": 1,
"Fire": 1,
"Flying": 0,
@@ -243,7 +279,7 @@ exports.BattleTypeChart = {
"Steel": 1,
"Water": 0
},
- "HPivs": {"atk":30,"def":30}
+ "HPivs": {"spe":30}
},
"Normal": {
"damageTaken": {
@@ -251,6 +287,7 @@ exports.BattleTypeChart = {
"Dark": 0,
"Dragon": 0,
"Electric": 0,
+ "Fairy": 0,
"Fighting": 1,
"Fire": 0,
"Flying": 0,
@@ -274,6 +311,7 @@ exports.BattleTypeChart = {
"Dark": 0,
"Dragon": 0,
"Electric": 0,
+ "Fairy": 2,
"Fighting": 2,
"Fire": 0,
"Flying": 0,
@@ -296,6 +334,7 @@ exports.BattleTypeChart = {
"Dark": 1,
"Dragon": 0,
"Electric": 0,
+ "Fairy": 0,
"Fighting": 2,
"Fire": 0,
"Flying": 0,
@@ -310,7 +349,7 @@ exports.BattleTypeChart = {
"Steel": 0,
"Water": 0
},
- "HPivs": {"atk":30,"spe":30}
+ "HPivs": {"def":30,"spe":30}
},
"Rock": {
"damageTaken": {
@@ -319,6 +358,7 @@ exports.BattleTypeChart = {
"Dark": 0,
"Dragon": 0,
"Electric": 0,
+ "Fairy": 0,
"Fighting": 1,
"Fire": 2,
"Flying": 2,
@@ -344,6 +384,7 @@ exports.BattleTypeChart = {
"Dark": 2,
"Dragon": 2,
"Electric": 0,
+ "Fairy": 2,
"Fighting": 1,
"Fire": 1,
"Flying": 2,
@@ -366,6 +407,7 @@ exports.BattleTypeChart = {
"Dark": 0,
"Dragon": 0,
"Electric": 1,
+ "Fairy": 0,
"Fighting": 0,
"Fire": 2,
"Flying": 0,
@@ -380,6 +422,6 @@ exports.BattleTypeChart = {
"Steel": 2,
"Water": 2
},
- "HPivs": {"atk":30,"def":30,"spa":30}
+ "HPivs": {"spa":30,"spe":30}
}
-};
\ No newline at end of file
+};
diff --git a/mods/gen5/moves.js b/mods/gen5/moves.js
new file mode 100644
index 0000000000..6700067ad8
--- /dev/null
+++ b/mods/gen5/moves.js
@@ -0,0 +1,164 @@
+exports.BattleMovedex = {
+ blizzard: {
+ inherit: true,
+ basePower: 120
+ },
+ bubble: {
+ inherit: true,
+ basePower: 20
+ },
+ charm: {
+ inherit: true,
+ type: "Normal"
+ },
+ cottonspore: {
+ inherit: true,
+ onTryHit: null
+ },
+ hiddenpower: {
+ inherit: true,
+ basePower: 0,
+ basePowerCallback: function(pokemon) {
+ return pokemon.hpPower || 70;
+ }
+ },
+ hiddenpowerbug: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerdark: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerdragon: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerelectric: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerfairy: null,
+ hiddenpowerfighting: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerfire: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerflying: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerghost: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowergrass: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerground: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerice: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerpoison: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerpsychic: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerrock: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowersteel: {
+ inherit: true,
+ basePower: 70
+ },
+ hiddenpowerwater: {
+ inherit: true,
+ basePower: 70
+ },
+ hurricane: {
+ inherit: true,
+ basePower: 120
+ },
+ hydropump: {
+ inherit: true,
+ basePower: 120
+ },
+ icebeam: {
+ inherit: true,
+ basePower: 95
+ },
+ lowsweep: {
+ inherit: true,
+ basePower: 60
+ },
+ moonlight: {
+ inherit: true,
+ type: "Normal"
+ },
+ fireblast: {
+ inherit: true,
+ basePower: 120
+ },
+ flamethrower: {
+ inherit: true,
+ basePower: 95
+ },
+ frostbreath: {
+ inherit: true,
+ basePower: 40
+ },
+ furycutter: {
+ inherit: true,
+ basePower: 20
+ },
+ rocktomb: {
+ inherit: true,
+ accuracy: 80,
+ basePower: 50
+ },
+ spore: {
+ inherit: true,
+ onTryHit: null
+ },
+ stunspore: {
+ inherit: true,
+ onTryHit: null
+ },
+ surf: {
+ inherit: true,
+ basePower: 95
+ },
+ sweetkiss: {
+ inherit: true,
+ type: "Normal"
+ },
+ thunder: {
+ inherit: true,
+ basePower: 120
+ },
+ thunderbolt: {
+ inherit: true,
+ basePower: 95
+ },
+ vinewhip: {
+ inherit: true,
+ basePower: 35,
+ pp: 15
+ },
+ willowisp: {
+ inherit: true,
+ accuracy: 75
+ }
+};
diff --git a/mods/gen5/pokedex.js b/mods/gen5/pokedex.js
new file mode 100644
index 0000000000..a5b3451c43
--- /dev/null
+++ b/mods/gen5/pokedex.js
@@ -0,0 +1,20 @@
+exports.BattlePokedex = {
+clefairy:{num:35,species:"Clefairy",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:70,atk:45,def:48,spa:60,spd:65,spe:35},abilities:{0:"Cute Charm",1:"Magic Guard",DW:"Friend Guard"},heightm:0.6,weightkg:7.5,color:"Pink",prevo:"cleffa",evos:["clefable"],evoLevel:1,eggGroups:["Fairy"]},
+clefable:{num:36,species:"Clefable",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:95,atk:70,def:73,spa:85,spd:90,spe:60},abilities:{0:"Cute Charm",1:"Magic Guard",DW:"Unaware"},heightm:1.3,weightkg:40,color:"Pink",prevo:"clefairy",evoLevel:1,eggGroups:["Fairy"]},
+jigglypuff:{num:39,species:"Jigglypuff",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:115,atk:45,def:20,spa:45,spd:25,spe:20},abilities:{0:"Cute Charm",DW:"Friend Guard"},heightm:0.5,weightkg:5.5,color:"Pink",prevo:"igglybuff",evos:["wigglytuff"],evoLevel:1,eggGroups:["Fairy"]},
+wigglytuff:{num:40,species:"Wigglytuff",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:140,atk:70,def:45,spa:75,spd:50,spe:45},abilities:{0:"Cute Charm",DW:"Frisk"},heightm:1,weightkg:12,color:"Pink",prevo:"jigglypuff",evoLevel:1,eggGroups:["Fairy"]},
+mrmime:{num:122,species:"Mr. Mime",types:["Psychic"],baseStats:{hp:40,atk:45,def:65,spa:100,spd:120,spe:90},abilities:{0:"Soundproof",1:"Filter",DW:"Technician"},heightm:1.3,weightkg:54.5,color:"Pink",prevo:"mimejr",evoLevel:1,evoMove:"Mimic",eggGroups:["Humanshape"]},
+togepi:{num:175,species:"Togepi",types:["Normal"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:35,atk:20,def:65,spa:40,spd:65,spe:20},abilities:{0:"Hustle",1:"Serene Grace",DW:"Super Luck"},heightm:0.3,weightkg:1.5,color:"White",evos:["togetic"],eggGroups:["No Eggs"]},
+togetic:{num:176,species:"Togetic",types:["Normal","Flying"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:55,atk:40,def:85,spa:80,spd:105,spe:40},abilities:{0:"Hustle",1:"Serene Grace",DW:"Super Luck"},heightm:0.6,weightkg:3.2,color:"White",prevo:"togepi",evos:["togekiss"],evoLevel:2,eggGroups:["Flying","Fairy"]},
+cleffa:{num:173,species:"Cleffa",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:50,atk:25,def:28,spa:45,spd:55,spe:15},abilities:{0:"Cute Charm",1:"Magic Guard",DW:"Friend Guard"},heightm:0.3,weightkg:3,color:"Pink",evos:["clefairy"],eggGroups:["No Eggs"]},
+marill:{num:183,species:"Marill",types:["Water"],baseStats:{hp:70,atk:20,def:50,spa:20,spd:50,spe:40},abilities:{0:"Thick Fat",1:"Huge Power",DW:"Sap Sipper"},heightm:0.4,weightkg:8.5,color:"Blue",prevo:"azurill",evos:["azumarill"],evoLevel:1,eggGroups:["Water 1","Fairy"]},
+azumarill:{num:184,species:"Azumarill",types:["Water"],baseStats:{hp:100,atk:50,def:80,spa:50,spd:80,spe:50},abilities:{0:"Thick Fat",1:"Huge Power",DW:"Sap Sipper"},heightm:0.8,weightkg:28.5,color:"Blue",prevo:"marill",evoLevel:18,eggGroups:["Water 1","Fairy"]},
+snubbull:{num:209,species:"Snubbull",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:60,atk:80,def:50,spa:40,spd:40,spe:30},abilities:{0:"Intimidate",1:"Run Away",DW:"Rattled"},heightm:0.6,weightkg:7.8,color:"Pink",evos:["granbull"],eggGroups:["Ground","Fairy"]},
+granbull:{num:210,species:"Granbull",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:90,atk:120,def:75,spa:60,spd:60,spe:45},abilities:{0:"Intimidate",1:"Quick Feet",DW:"Rattled"},heightm:1.4,weightkg:48.7,color:"Purple",prevo:"snubbull",evoLevel:23,eggGroups:["Ground","Fairy"]},
+ralts:{num:280,species:"Ralts",types:["Psychic"],baseStats:{hp:28,atk:25,def:25,spa:45,spd:35,spe:40},abilities:{0:"Synchronize",1:"Trace",DW:"Telepathy"},heightm:0.4,weightkg:6.6,color:"White",evos:["kirlia"],eggGroups:["Indeterminate"]},
+kirlia:{num:281,species:"Kirlia",types:["Psychic"],baseStats:{hp:38,atk:35,def:35,spa:65,spd:55,spe:50},abilities:{0:"Synchronize",1:"Trace",DW:"Telepathy"},heightm:0.8,weightkg:20.2,color:"White",prevo:"ralts",evos:["gardevoir","gallade"],evoLevel:20,eggGroups:["Indeterminate"]},
+gardevoir:{num:282,species:"Gardevoir",types:["Psychic"],baseStats:{hp:68,atk:65,def:65,spa:125,spd:115,spe:80},abilities:{0:"Synchronize",1:"Trace",DW:"Telepathy"},heightm:1.6,weightkg:48.4,color:"White",prevo:"kirlia",evoLevel:30,eggGroups:["Indeterminate"]},
+azurill:{num:298,species:"Azurill",types:["Normal"],genderRatio:{M:0.25,F:0.75},baseStats:{hp:50,atk:20,def:40,spa:20,spd:40,spe:20},abilities:{0:"Thick Fat",1:"Huge Power",DW:"Sap Sipper"},heightm:0.2,weightkg:2,color:"Blue",evos:["marill"],eggGroups:["No Eggs"]},
+mawile:{num:303,species:"Mawile",types:["Steel"],baseStats:{hp:50,atk:85,def:85,spa:55,spd:55,spe:50},abilities:{0:"Hyper Cutter",1:"Intimidate",DW:"Sheer Force"},heightm:0.6,weightkg:11.5,color:"Black",eggGroups:["Ground","Fairy"]},
+togekiss:{num:468,species:"Togekiss",types:["Normal","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",DW:"Super Luck"},heightm:1.5,weightkg:38,color:"White",prevo:"togetic",evoLevel:2,eggGroups:["Flying","Fairy"]}
+};
diff --git a/mods/gen5/scripts.js b/mods/gen5/scripts.js
new file mode 100644
index 0000000000..21a37687f8
--- /dev/null
+++ b/mods/gen5/scripts.js
@@ -0,0 +1,16 @@
+exports.BattleScripts = {
+ gen: 5,
+ init: function () {
+ for (var i in this.data.Learnsets) {
+ this.modData('Learnsets', i);
+ var learnset = this.data.Learnsets[i].learnset;
+ for (var moveid in learnset) {
+ if (typeof learnset[moveid] === 'string') learnset[moveid] = [learnset[moveid]];
+ learnset[moveid] = learnset[moveid].filter(function(source) {
+ return source[0] !== '6';
+ });
+ if (!learnset[moveid].length) delete learnset[moveid];
+ }
+ }
+ }
+};
diff --git a/mods/gen5/typechart.js b/mods/gen5/typechart.js
new file mode 100644
index 0000000000..a0064c6bd4
--- /dev/null
+++ b/mods/gen5/typechart.js
@@ -0,0 +1,385 @@
+exports.BattleTypeChart = {
+ "Bug": {
+ "damageTaken": {
+ "Bug": 0,
+ "Dark": 0,
+ "Dragon": 0,
+ "Electric": 0,
+ "Fighting": 2,
+ "Fire": 1,
+ "Flying": 1,
+ "Ghost": 0,
+ "Grass": 2,
+ "Ground": 2,
+ "Ice": 0,
+ "Normal": 0,
+ "Poison": 0,
+ "Psychic": 0,
+ "Rock": 1,
+ "Steel": 0,
+ "Water": 0
+ },
+ "HPivs": {"atk":30,"def":30,"spd":30}
+ },
+ "Dark": {
+ "damageTaken": {
+ "Bug": 1,
+ "Dark": 2,
+ "Dragon": 0,
+ "Electric": 0,
+ "Fighting": 1,
+ "Fire": 0,
+ "Flying": 0,
+ "Ghost": 2,
+ "Grass": 0,
+ "Ground": 0,
+ "Ice": 0,
+ "Normal": 0,
+ "Poison": 0,
+ "Psychic": 3,
+ "Rock": 0,
+ "Steel": 0,
+ "Water": 0
+ },
+ "HPivs": {}
+ },
+ "Dragon": {
+ "damageTaken": {
+ "Bug": 0,
+ "Dark": 0,
+ "Dragon": 1,
+ "Electric": 2,
+ "Fighting": 0,
+ "Fire": 2,
+ "Flying": 0,
+ "Ghost": 0,
+ "Grass": 2,
+ "Ground": 0,
+ "Ice": 1,
+ "Normal": 0,
+ "Poison": 0,
+ "Psychic": 0,
+ "Rock": 0,
+ "Steel": 0,
+ "Water": 2
+ },
+ "HPivs": {"atk":30}
+ },
+ "Electric": {
+ "damageTaken": {
+ "Bug": 0,
+ "Dark": 0,
+ "Dragon": 0,
+ "Electric": 2,
+ "Fighting": 0,
+ "Fire": 0,
+ "Flying": 2,
+ "Ghost": 0,
+ "Grass": 0,
+ "Ground": 1,
+ "Ice": 0,
+ "Normal": 0,
+ "Poison": 0,
+ "Psychic": 0,
+ "Rock": 0,
+ "Steel": 2,
+ "Water": 0
+ },
+ "HPivs": {"spa":30}
+ },
+ "Fighting": {
+ "damageTaken": {
+ "Bug": 2,
+ "Dark": 2,
+ "Dragon": 0,
+ "Electric": 0,
+ "Fighting": 0,
+ "Fire": 0,
+ "Flying": 1,
+ "Ghost": 0,
+ "Grass": 0,
+ "Ground": 0,
+ "Ice": 0,
+ "Normal": 0,
+ "Poison": 0,
+ "Psychic": 1,
+ "Rock": 2,
+ "Steel": 0,
+ "Water": 0
+ },
+ "HPivs": {"def":30,"spa":30,"spd":30,"spe":30}
+ },
+ "Fire": {
+ "damageTaken": {
+ brn: 3,
+ "Bug": 2,
+ "Dark": 0,
+ "Dragon": 0,
+ "Electric": 0,
+ "Fighting": 0,
+ "Fire": 2,
+ "Flying": 0,
+ "Ghost": 0,
+ "Grass": 2,
+ "Ground": 1,
+ "Ice": 2,
+ "Normal": 0,
+ "Poison": 0,
+ "Psychic": 0,
+ "Rock": 1,
+ "Steel": 2,
+ "Water": 1
+ },
+ "HPivs": {"atk":30,"spa":30,"spe":30}
+ },
+ "Flying": {
+ "damageTaken": {
+ "Bug": 2,
+ "Dark": 0,
+ "Dragon": 0,
+ "Electric": 1,
+ "Fighting": 2,
+ "Fire": 0,
+ "Flying": 0,
+ "Ghost": 0,
+ "Grass": 2,
+ "Ground": 3,
+ "Ice": 1,
+ "Normal": 0,
+ "Poison": 0,
+ "Psychic": 0,
+ "Rock": 1,
+ "Steel": 0,
+ "Water": 0
+ },
+ "HPivs": {"hp":30,"atk":30,"def":30,"spa":30,"spd":30}
+ },
+ "Ghost": {
+ "damageTaken": {
+ "Bug": 2,
+ "Dark": 1,
+ "Dragon": 0,
+ "Electric": 0,
+ "Fighting": 3,
+ "Fire": 0,
+ "Flying": 0,
+ "Ghost": 1,
+ "Grass": 0,
+ "Ground": 0,
+ "Ice": 0,
+ "Normal": 3,
+ "Poison": 2,
+ "Psychic": 0,
+ "Rock": 0,
+ "Steel": 0,
+ "Water": 0
+ },
+ "HPivs": {"def":30,"spd":30}
+ },
+ "Grass": {
+ "damageTaken": {
+ "Bug": 1,
+ "Dark": 0,
+ "Dragon": 0,
+ "Electric": 2,
+ "Fighting": 0,
+ "Fire": 1,
+ "Flying": 1,
+ "Ghost": 0,
+ "Grass": 2,
+ "Ground": 2,
+ "Ice": 1,
+ "Normal": 0,
+ "Poison": 1,
+ "Psychic": 0,
+ "Rock": 0,
+ "Steel": 0,
+ "Water": 2
+ },
+ "HPivs": {"atk":30,"spa":30}
+ },
+ "Ground": {
+ "damageTaken": {
+ sandstorm: 3,
+ "Bug": 0,
+ "Dark": 0,
+ "Dragon": 0,
+ "Electric": 3,
+ "Fighting": 0,
+ "Fire": 0,
+ "Flying": 0,
+ "Ghost": 0,
+ "Grass": 1,
+ "Ground": 0,
+ "Ice": 1,
+ "Normal": 0,
+ "Poison": 2,
+ "Psychic": 0,
+ "Rock": 2,
+ "Steel": 0,
+ "Water": 1
+ },
+ "HPivs": {"spa":30,"spd":30}
+ },
+ "Ice": {
+ "damageTaken": {
+ hail: 3,
+ frz: 3,
+ "Bug": 0,
+ "Dark": 0,
+ "Dragon": 0,
+ "Electric": 0,
+ "Fighting": 1,
+ "Fire": 1,
+ "Flying": 0,
+ "Ghost": 0,
+ "Grass": 0,
+ "Ground": 0,
+ "Ice": 2,
+ "Normal": 0,
+ "Poison": 0,
+ "Psychic": 0,
+ "Rock": 1,
+ "Steel": 1,
+ "Water": 0
+ },
+ "HPivs": {"atk":30,"def":30}
+ },
+ "Normal": {
+ "damageTaken": {
+ "Bug": 0,
+ "Dark": 0,
+ "Dragon": 0,
+ "Electric": 0,
+ "Fighting": 1,
+ "Fire": 0,
+ "Flying": 0,
+ "Ghost": 3,
+ "Grass": 0,
+ "Ground": 0,
+ "Ice": 0,
+ "Normal": 0,
+ "Poison": 0,
+ "Psychic": 0,
+ "Rock": 0,
+ "Steel": 0,
+ "Water": 0
+ }
+ },
+ "Poison": {
+ "damageTaken": {
+ psn: 3,
+ tox: 3,
+ "Bug": 2,
+ "Dark": 0,
+ "Dragon": 0,
+ "Electric": 0,
+ "Fighting": 2,
+ "Fire": 0,
+ "Flying": 0,
+ "Ghost": 0,
+ "Grass": 2,
+ "Ground": 1,
+ "Ice": 0,
+ "Normal": 0,
+ "Poison": 2,
+ "Psychic": 1,
+ "Rock": 0,
+ "Steel": 0,
+ "Water": 0
+ },
+ "HPivs": {"def":30,"spa":30,"spd":30}
+ },
+ "Psychic": {
+ "damageTaken": {
+ "Bug": 1,
+ "Dark": 1,
+ "Dragon": 0,
+ "Electric": 0,
+ "Fighting": 2,
+ "Fire": 0,
+ "Flying": 0,
+ "Ghost": 1,
+ "Grass": 0,
+ "Ground": 0,
+ "Ice": 0,
+ "Normal": 0,
+ "Poison": 0,
+ "Psychic": 2,
+ "Rock": 0,
+ "Steel": 0,
+ "Water": 0
+ },
+ "HPivs": {"atk":30,"spe":30}
+ },
+ "Rock": {
+ "damageTaken": {
+ sandstorm: 3,
+ "Bug": 0,
+ "Dark": 0,
+ "Dragon": 0,
+ "Electric": 0,
+ "Fighting": 1,
+ "Fire": 2,
+ "Flying": 2,
+ "Ghost": 0,
+ "Grass": 1,
+ "Ground": 1,
+ "Ice": 0,
+ "Normal": 2,
+ "Poison": 2,
+ "Psychic": 0,
+ "Rock": 0,
+ "Steel": 1,
+ "Water": 1
+ },
+ "HPivs": {"def":30,"spd":30,"spe":30}
+ },
+ "Steel": {
+ "damageTaken": {
+ psn: 3,
+ tox: 3,
+ sandstorm: 3,
+ "Bug": 2,
+ "Dark": 2,
+ "Dragon": 2,
+ "Electric": 0,
+ "Fighting": 1,
+ "Fire": 1,
+ "Flying": 2,
+ "Ghost": 2,
+ "Grass": 2,
+ "Ground": 1,
+ "Ice": 2,
+ "Normal": 2,
+ "Poison": 3,
+ "Psychic": 2,
+ "Rock": 2,
+ "Steel": 2,
+ "Water": 0
+ },
+ "HPivs": {"spd":30}
+ },
+ "Water": {
+ "damageTaken": {
+ "Bug": 0,
+ "Dark": 0,
+ "Dragon": 0,
+ "Electric": 1,
+ "Fighting": 0,
+ "Fire": 2,
+ "Flying": 0,
+ "Ghost": 0,
+ "Grass": 1,
+ "Ground": 0,
+ "Ice": 2,
+ "Normal": 0,
+ "Poison": 0,
+ "Psychic": 0,
+ "Rock": 0,
+ "Steel": 2,
+ "Water": 2
+ },
+ "HPivs": {"atk":30,"def":30,"spa":30}
+ }
+};