From dc7ac3fc6d1f0f696391704134df768beb432aa5 Mon Sep 17 00:00:00 2001 From: V4Victini Date: Tue, 8 Oct 2013 17:27:59 -0400 Subject: [PATCH 01/27] Remove debug messages from Doubles CC --- config/formats.js | 1 - 1 file changed, 1 deletion(-) diff --git a/config/formats.js b/config/formats.js index db566d27e5..9a00a932b9 100644 --- a/config/formats.js +++ b/config/formats.js @@ -275,7 +275,6 @@ exports.Formats = [ gameType: 'doubles', team: 'randomCC', searchShow: false, - debug: true, ruleset: ['Pokemon', 'HP Percentage Mod'] }, From b3a6d5df5ca3422576f7279e586fb28907560e23 Mon Sep 17 00:00:00 2001 From: Cosym Date: Tue, 8 Oct 2013 22:30:03 +0100 Subject: [PATCH 02/27] Add autoconfirmed into faq command --- config/commands.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/commands.js b/config/commands.js index 419e131265..62a2e2aa7e 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.'); } From 3e28b78cd268044739df2d033456744452491678 Mon Sep 17 00:00:00 2001 From: V4Victini Date: Tue, 8 Oct 2013 18:30:38 -0400 Subject: [PATCH 03/27] Add missing semicolon --- config/commands.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/commands.js b/config/commands.js index 62a2e2aa7e..21e39273d5 100644 --- a/config/commands.js +++ b/config/commands.js @@ -795,7 +795,7 @@ var commands = exports.commands = { } 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.
' + + 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.'); From f93221040165783a6c8d28b3899ab063f779166b Mon Sep 17 00:00:00 2001 From: V4Victini Date: Tue, 8 Oct 2013 21:23:40 -0400 Subject: [PATCH 04/27] Fix Magnitude The base power should be decided once per move not once per hit. --- data/moves.js | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/data/moves.js b/data/moves.js index 80f8f5ebd2..20cd3caa1a 100644 --- a/data/moves.js +++ b/data/moves.js @@ -6991,31 +6991,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 +6998,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" From d1a65d84c2d3b0f0741cb4710f4dca36d0741d8b Mon Sep 17 00:00:00 2001 From: Cosym Date: Thu, 10 Oct 2013 18:16:16 +0100 Subject: [PATCH 05/27] Global declare command for Admins Global declare command that sends an anonymous declare to all rooms on the server, including battle rooms and private rooms. --- commands.js | 11 +++++++++++ config/commands.js | 10 +++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/commands.js b/commands.js index 1d0df971a3..089d082164 100644 --- a/commands.js +++ b/commands.js @@ -796,6 +796,17 @@ 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('hotpatch')) return false; + + for (var id in Rooms.rooms) { + if (id !== 'global') Rooms.rooms[id].addRaw('
Global Declare:
'+target+'
'); + } + this.logModCommand(user.name+' globally declared '+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 62a2e2aa7e..e41ca50077 100644 --- a/config/commands.js +++ b/config/commands.js @@ -795,7 +795,7 @@ var commands = exports.commands = { } 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.
' + + 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.'); @@ -1259,11 +1259,15 @@ 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 === '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: % @ & ~'); } From 1ce9079f0ae7ffb81b223203c4d0c6ea18273aed Mon Sep 17 00:00:00 2001 From: Cosym Date: Thu, 10 Oct 2013 18:45:47 +0100 Subject: [PATCH 06/27] Chat declare for Leaders A global declare that sends an anonymous declare to all chatrooms on the server (no battle rooms, unlike globaldeclare). Used by Leaders and Admins. --- commands.js | 13 ++++++++++++- config/commands.js | 4 ++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/commands.js b/commands.js index 089d082164..d2c00b264a 100644 --- a/commands.js +++ b/commands.js @@ -800,13 +800,24 @@ var commands = exports.commands = { globaldeclare: function(target, room, user) { if (!target) return this.parse('/help globaldeclare'); if (!this.can('hotpatch')) return false; - + for (var id in Rooms.rooms) { if (id !== 'global') Rooms.rooms[id].addRaw('
Global Declare:
'+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('forcewin')) return false; + + for (var id in Rooms.rooms) { + if (id !== 'global') if (Rooms.rooms[id].type !== 'battle') Rooms.rooms[id].addRaw('
Global Chat Declare:
'+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 e41ca50077..900e8c136e 100644 --- a/config/commands.js +++ b/config/commands.js @@ -1263,6 +1263,10 @@ var commands = exports.commands = { matched = true; this.sendReply('/declare [message] - Anonymously announces a message. Requires: & ~'); } + if (target === '&' || target === 'chatdeclare' || target === 'cdeclare') { + matched = true; + this.sendReply('/chadeclare [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: ~'); From 35ad815372e2f70b929ca4fc562495a8b1190aa2 Mon Sep 17 00:00:00 2001 From: Cosym Date: Thu, 10 Oct 2013 18:54:27 +0100 Subject: [PATCH 07/27] Declares to Admin only, add permission Changed cdeclare to Admin only, and added a 'gdeclare: true,' permission to Admins. Removed declares 'label' from the declare. --- commands.js | 8 ++++---- config/commands.js | 4 ++-- config/config-example.js | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/commands.js b/commands.js index d2c00b264a..e2fe45f525 100644 --- a/commands.js +++ b/commands.js @@ -799,10 +799,10 @@ var commands = exports.commands = { gdeclare: 'globaldeclare', globaldeclare: function(target, room, user) { if (!target) return this.parse('/help globaldeclare'); - if (!this.can('hotpatch')) return false; + if (!this.can('gdeclare')) return false; for (var id in Rooms.rooms) { - if (id !== 'global') Rooms.rooms[id].addRaw('
Global Declare:
'+target+'
'); + if (id !== 'global') Rooms.rooms[id].addRaw('
'+target+'
'); } this.logModCommand(user.name+' globally declared '+target); }, @@ -810,10 +810,10 @@ var commands = exports.commands = { cdeclare: 'chatdeclare', chatdeclare: function(target, room, user) { if (!target) return this.parse('/help chatdeclare'); - if (!this.can('forcewin')) return false; + 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('
Global Chat Declare:
'+target+'
'); + if (id !== 'global') if (Rooms.rooms[id].type !== 'battle') Rooms.rooms[id].addRaw('
'+target+'
'); } this.logModCommand(user.name+' globally declared (chat level) '+target); }, diff --git a/config/commands.js b/config/commands.js index 900e8c136e..29af608a3e 100644 --- a/config/commands.js +++ b/config/commands.js @@ -1263,9 +1263,9 @@ var commands = exports.commands = { matched = true; this.sendReply('/declare [message] - Anonymously announces a message. Requires: & ~'); } - if (target === '&' || target === 'chatdeclare' || target === 'cdeclare') { + if (target === '~' || target === 'chatdeclare' || target === 'cdeclare') { matched = true; - this.sendReply('/chadeclare [message] - Anonymously announces a message to all chatrooms on the server. Requires: & ~'); + this.sendReply('/chadeclare [message] - Anonymously announces a message to all chatrooms on the server. Requires: ~'); } if (target === '~' || target === 'globaldeclare' || target === 'gdeclare') { matched = true; 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 }, '&': { From 4c1aca41b149024da77ab2741715f777ade80a61 Mon Sep 17 00:00:00 2001 From: Cosym Date: Thu, 10 Oct 2013 19:05:46 +0100 Subject: [PATCH 08/27] Spelling error :| --- config/commands.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/commands.js b/config/commands.js index 29af608a3e..830c2ff865 100644 --- a/config/commands.js +++ b/config/commands.js @@ -1265,7 +1265,7 @@ var commands = exports.commands = { } if (target === '~' || target === 'chatdeclare' || target === 'cdeclare') { matched = true; - this.sendReply('/chadeclare [message] - Anonymously announces a message to all chatrooms on the server. Requires: ~'); + this.sendReply('/cdeclare [message] - Anonymously announces a message to all chatrooms on the server. Requires: ~'); } if (target === '~' || target === 'globaldeclare' || target === 'gdeclare') { matched = true; From b482916f7290a9c6f190599ba7fd88c84128f33a Mon Sep 17 00:00:00 2001 From: Cosy Date: Thu, 10 Oct 2013 21:58:58 +0100 Subject: [PATCH 09/27] /l alias for lock command Also fix proper use of 'therefore' in roomauth command --- commands.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/commands.js b/commands.js index e2fe45f525..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'); From 52b53a325ede21a7079f5775a9b19ed81824fd5e Mon Sep 17 00:00:00 2001 From: V4Victini Date: Thu, 10 Oct 2013 22:02:24 -0400 Subject: [PATCH 10/27] Fix Gems They should only activate on attacking moves. --- data/items.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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); From ff226c2531516fbe7d489e366bf412921e95a7c6 Mon Sep 17 00:00:00 2001 From: Guangcong Luo Date: Fri, 11 Oct 2013 00:26:50 -0700 Subject: [PATCH 11/27] Start on gen 6 Gen 5 is now a mod. The data/ directory will contain gen 6 data from now on. I've already filled out the type chart, and the new pokemon, moves, and abilities will be coming shortly. --- config/formats.js | 39 ++++- data/typechart.js | 43 ++++- mods/gen5/typechart.js | 385 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 465 insertions(+), 2 deletions(-) create mode 100644 mods/gen5/typechart.js diff --git a/config/formats.js b/config/formats.js index 9a00a932b9..85352c30d6 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,6 +293,7 @@ exports.Formats = [ name: "Doubles Challenge Cup", section: 'Doubles', + mod: 'gen5', gameType: 'doubles', team: 'randomCC', searchShow: false, @@ -285,6 +307,7 @@ exports.Formats = [ 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', @@ -296,6 +319,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) { @@ -447,6 +471,7 @@ exports.Formats = [ name: "Challenge Cup", section: "Other Metagames", + mod: 'gen5', team: 'randomCC', ruleset: ['Pokemon', 'HP Percentage Mod'] }, @@ -454,6 +479,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() { @@ -468,6 +494,7 @@ exports.Formats = [ name: "Hackmons", section: "Other Metagames", + mod: 'gen5', ruleset: ['Pokemon'], banlist: [] }, @@ -475,6 +502,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'] }, @@ -491,6 +519,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'] }, @@ -498,6 +527,7 @@ exports.Formats = [ name: "Glitchmons", section: "Other Metagames", + mod: 'gen5', searchShow: false, ruleset: ['Pokemon', 'Team Preview', 'HP Percentage Mod'], banlist: ['Illegal', 'Unreleased'], @@ -507,6 +537,7 @@ exports.Formats = [ name: "LC Ubers", section: "Other Metagames", + mod: 'gen5', maxLevel: 5, searchShow: false, ruleset: ['Pokemon', 'Standard', 'Team Preview', 'Little Cup'], @@ -516,6 +547,7 @@ exports.Formats = [ name: "LC UU", section: "Other Metagames", + mod: 'gen5', maxLevel: 5, searchShow: false, ruleset: ['LC'], @@ -525,6 +557,7 @@ exports.Formats = [ name: "Dream World", section: "Other Metagames", + mod: 'gen5', searchShow: false, ruleset: ['Pokemon', 'Standard DW', 'Team Preview'], banlist: [] @@ -541,6 +574,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; @@ -574,6 +608,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"] @@ -582,6 +617,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', @@ -593,6 +629,7 @@ exports.Formats = [ name: "Budgetmons", section: "Other Metagames", + mod: 'gen5', searchShow: false, ruleset: ['OU'], banlist: [], diff --git a/data/typechart.js b/data/typechart.js index 0be31f339b..62b7ff811e 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, @@ -27,6 +28,7 @@ exports.BattleTypeChart = { "Dark": 2, "Dragon": 0, "Electric": 0, + "Fairy": 1, "Fighting": 1, "Fire": 0, "Flying": 0, @@ -49,6 +51,7 @@ exports.BattleTypeChart = { "Dark": 0, "Dragon": 1, "Electric": 2, + "Fairy": 1, "Fighting": 0, "Fire": 2, "Flying": 0, @@ -67,10 +70,12 @@ exports.BattleTypeChart = { }, "Electric": { "damageTaken": { + par: 3, "Bug": 0, "Dark": 0, "Dragon": 0, "Electric": 2, + "Fairy": 0, "Fighting": 0, "Fire": 0, "Flying": 2, @@ -87,12 +92,35 @@ 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 + } + }, "Fighting": { "damageTaken": { "Bug": 2, "Dark": 2, "Dragon": 0, "Electric": 0, + "Fairy": 1, "Fighting": 0, "Fire": 0, "Flying": 1, @@ -116,6 +144,7 @@ exports.BattleTypeChart = { "Dark": 0, "Dragon": 0, "Electric": 0, + "Fairy": 2, "Fighting": 0, "Fire": 2, "Flying": 0, @@ -138,6 +167,7 @@ exports.BattleTypeChart = { "Dark": 0, "Dragon": 0, "Electric": 1, + "Fairy": 0, "Fighting": 2, "Fire": 0, "Flying": 0, @@ -156,10 +186,12 @@ exports.BattleTypeChart = { }, "Ghost": { "damageTaken": { + trapping: 3, "Bug": 2, "Dark": 1, "Dragon": 0, "Electric": 0, + "Fairy": 0, "Fighting": 3, "Fire": 0, "Flying": 0, @@ -182,6 +214,7 @@ exports.BattleTypeChart = { "Dark": 0, "Dragon": 0, "Electric": 2, + "Fairy": 0, "Fighting": 0, "Fire": 1, "Flying": 1, @@ -205,6 +238,7 @@ exports.BattleTypeChart = { "Dark": 0, "Dragon": 0, "Electric": 3, + "Fairy": 0, "Fighting": 0, "Fire": 0, "Flying": 0, @@ -229,6 +263,7 @@ exports.BattleTypeChart = { "Dark": 0, "Dragon": 0, "Electric": 0, + "Fairy": 0, "Fighting": 1, "Fire": 1, "Flying": 0, @@ -251,6 +286,7 @@ exports.BattleTypeChart = { "Dark": 0, "Dragon": 0, "Electric": 0, + "Fairy": 0, "Fighting": 1, "Fire": 0, "Flying": 0, @@ -274,6 +310,7 @@ exports.BattleTypeChart = { "Dark": 0, "Dragon": 0, "Electric": 0, + "Fairy": 2, "Fighting": 2, "Fire": 0, "Flying": 0, @@ -296,6 +333,7 @@ exports.BattleTypeChart = { "Dark": 1, "Dragon": 0, "Electric": 0, + "Fairy": 0, "Fighting": 2, "Fire": 0, "Flying": 0, @@ -319,6 +357,7 @@ exports.BattleTypeChart = { "Dark": 0, "Dragon": 0, "Electric": 0, + "Fairy": 0, "Fighting": 1, "Fire": 2, "Flying": 2, @@ -344,6 +383,7 @@ exports.BattleTypeChart = { "Dark": 2, "Dragon": 2, "Electric": 0, + "Fairy": 2, "Fighting": 1, "Fire": 1, "Flying": 2, @@ -366,6 +406,7 @@ exports.BattleTypeChart = { "Dark": 0, "Dragon": 0, "Electric": 1, + "Fairy": 0, "Fighting": 0, "Fire": 2, "Flying": 0, @@ -382,4 +423,4 @@ exports.BattleTypeChart = { }, "HPivs": {"atk":30,"def":30,"spa":30} } -}; \ No newline at end of file +}; 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} + } +}; From 0ed83b1e6e8c3825c643417dda213cef39bbda79 Mon Sep 17 00:00:00 2001 From: Joimer Date: Fri, 11 Oct 2013 09:31:17 +0200 Subject: [PATCH 12/27] Implement Gen 5.5 Other Meta Gen 5.5 is an Other Meta that implements some Gen 6 changes onto Gen 5. The goal is to let players both adapt to the new gen and let them see the impact of typechart, move, and abilty changes on Gen 5. --- config/formats.js | 8 + mods/gen55/moves.js | 20 ++ mods/gen55/typechart.js | 425 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 453 insertions(+) create mode 100644 mods/gen55/moves.js create mode 100644 mods/gen55/typechart.js diff --git a/config/formats.js b/config/formats.js index 85352c30d6..c47268d1c1 100644 --- a/config/formats.js +++ b/config/formats.js @@ -303,6 +303,14 @@ exports.Formats = [ // Other Metagames /////////////////////////////////////////////////////////////////// + { + name: "Generation 5.5", + section: "OM of the Month", + + mod: 'gen55', + ruleset: ['Pokemon', 'HP Percentage Mod'], + banlist: ['Unreleased', 'Illegal', 'Uber'] + }, { name: "Ability Exchange", section: "OM of the Month", diff --git a/mods/gen55/moves.js b/mods/gen55/moves.js new file mode 100644 index 0000000000..4b4b6d4c14 --- /dev/null +++ b/mods/gen55/moves.js @@ -0,0 +1,20 @@ +exports.BattleMovedex = { + cottonspore: { + inherit: true, + onTryHit: function(target, source) { + return !target.hasType('Grass'); + } + }, + spore: { + inherit: true, + onTryHit: function(target, source) { + return !target.hasType('Grass'); + } + }, + stunspore: { + inherit: true, + onTryHit: function(target, source) { + return !target.hasType('Grass'); + } + } +}; diff --git a/mods/gen55/typechart.js b/mods/gen55/typechart.js new file mode 100644 index 0000000000..fe258f5d21 --- /dev/null +++ b/mods/gen55/typechart.js @@ -0,0 +1,425 @@ +exports.BattleTypeChart = { + "Bug": { + "damageTaken": { + "Bug": 0, + "Dark": 0, + "Dragon": 0, + "Electric": 0, + "Fairy": 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": {"spd":30,"spe":30} + }, + "Dark": { + "damageTaken": { + "Bug": 1, + "Dark": 2, + "Dragon": 0, + "Electric": 0, + "Fairy": 1, + "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": {"atk":30} + }, + "Dragon": { + "damageTaken": { + "Bug": 0, + "Dark": 0, + "Dragon": 1, + "Electric": 0, + "Fairy": 1, + "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": {"def":30} + }, + "Electric": { + "damageTaken": { + "Bug": 0, + "Dark": 0, + "Dragon": 0, + "Electric": 0, + "Fairy": 0, + "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} + }, + "Fairy": { + "damageTaken": { + "Bug": 2, + "Dark": 2, + "Dragon": 3, + "Electric": 0, + "Fairy": 0, + "Fighting": 0, + "Fire": 2, + "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, + "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, + "Fairy": 2, + "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": {"def":30,"spa":30,"spe":30} + }, + "Flying": { + "damageTaken": { + "Bug": 2, + "Dark": 0, + "Dragon": 0, + "Electric": 0, + "Fairy": 0, + "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": {"spa":30,"spd":30,"spe":30} + }, + "Ghost": { + "damageTaken": { + "Bug": 2, + "Dark": 1, + "Dragon": 0, + "Electric": 0, + "Fairy": 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": 0, + "Fairy": 0, + "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": {"def":30,"spa":30} + }, + "Ground": { + "damageTaken": { + sandstorm: 3, + "Bug": 0, + "Dark": 0, + "Dragon": 0, + "Electric": 0, + "Fairy": 0, + "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, + "Fairy": 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": {"spe":30} + }, + "Normal": { + "damageTaken": { + "Bug": 0, + "Dark": 0, + "Dragon": 0, + "Electric": 0, + "Fairy": 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, + "Fairy": 2, + "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, + "Fairy": 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": {"def":30,"spe":30} + }, + "Rock": { + "damageTaken": { + sandstorm: 3, + "Bug": 0, + "Dark": 0, + "Dragon": 0, + "Electric": 0, + "Fairy": 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": 0, + "Dragon": 2, + "Electric": 0, + "Fairy": 2, + "Fighting": 1, + "Fire": 1, + "Flying": 2, + "Ghost": 0, + "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": 0, + "Fairy": 0, + "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": {"spa":30,"spe":30} + } +}; From fe1046a66ed5075a9471729c8480f4b5ebe4e6c6 Mon Sep 17 00:00:00 2001 From: Joimer Date: Fri, 11 Oct 2013 09:37:02 +0200 Subject: [PATCH 13/27] Gen 5.5 now uses main files Since Gen 5 is now a mod, revert partly previous commit and make gen 5.5 take all the data from master /data files. --- config/formats.js | 1 - mods/gen55/moves.js | 20 -- mods/gen55/typechart.js | 425 ---------------------------------------- 3 files changed, 446 deletions(-) delete mode 100644 mods/gen55/moves.js delete mode 100644 mods/gen55/typechart.js diff --git a/config/formats.js b/config/formats.js index c47268d1c1..9dcfc922e8 100644 --- a/config/formats.js +++ b/config/formats.js @@ -307,7 +307,6 @@ exports.Formats = [ name: "Generation 5.5", section: "OM of the Month", - mod: 'gen55', ruleset: ['Pokemon', 'HP Percentage Mod'], banlist: ['Unreleased', 'Illegal', 'Uber'] }, diff --git a/mods/gen55/moves.js b/mods/gen55/moves.js deleted file mode 100644 index 4b4b6d4c14..0000000000 --- a/mods/gen55/moves.js +++ /dev/null @@ -1,20 +0,0 @@ -exports.BattleMovedex = { - cottonspore: { - inherit: true, - onTryHit: function(target, source) { - return !target.hasType('Grass'); - } - }, - spore: { - inherit: true, - onTryHit: function(target, source) { - return !target.hasType('Grass'); - } - }, - stunspore: { - inherit: true, - onTryHit: function(target, source) { - return !target.hasType('Grass'); - } - } -}; diff --git a/mods/gen55/typechart.js b/mods/gen55/typechart.js deleted file mode 100644 index fe258f5d21..0000000000 --- a/mods/gen55/typechart.js +++ /dev/null @@ -1,425 +0,0 @@ -exports.BattleTypeChart = { - "Bug": { - "damageTaken": { - "Bug": 0, - "Dark": 0, - "Dragon": 0, - "Electric": 0, - "Fairy": 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": {"spd":30,"spe":30} - }, - "Dark": { - "damageTaken": { - "Bug": 1, - "Dark": 2, - "Dragon": 0, - "Electric": 0, - "Fairy": 1, - "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": {"atk":30} - }, - "Dragon": { - "damageTaken": { - "Bug": 0, - "Dark": 0, - "Dragon": 1, - "Electric": 0, - "Fairy": 1, - "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": {"def":30} - }, - "Electric": { - "damageTaken": { - "Bug": 0, - "Dark": 0, - "Dragon": 0, - "Electric": 0, - "Fairy": 0, - "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} - }, - "Fairy": { - "damageTaken": { - "Bug": 2, - "Dark": 2, - "Dragon": 3, - "Electric": 0, - "Fairy": 0, - "Fighting": 0, - "Fire": 2, - "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, - "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, - "Fairy": 2, - "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": {"def":30,"spa":30,"spe":30} - }, - "Flying": { - "damageTaken": { - "Bug": 2, - "Dark": 0, - "Dragon": 0, - "Electric": 0, - "Fairy": 0, - "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": {"spa":30,"spd":30,"spe":30} - }, - "Ghost": { - "damageTaken": { - "Bug": 2, - "Dark": 1, - "Dragon": 0, - "Electric": 0, - "Fairy": 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": 0, - "Fairy": 0, - "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": {"def":30,"spa":30} - }, - "Ground": { - "damageTaken": { - sandstorm: 3, - "Bug": 0, - "Dark": 0, - "Dragon": 0, - "Electric": 0, - "Fairy": 0, - "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, - "Fairy": 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": {"spe":30} - }, - "Normal": { - "damageTaken": { - "Bug": 0, - "Dark": 0, - "Dragon": 0, - "Electric": 0, - "Fairy": 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, - "Fairy": 2, - "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, - "Fairy": 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": {"def":30,"spe":30} - }, - "Rock": { - "damageTaken": { - sandstorm: 3, - "Bug": 0, - "Dark": 0, - "Dragon": 0, - "Electric": 0, - "Fairy": 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": 0, - "Dragon": 2, - "Electric": 0, - "Fairy": 2, - "Fighting": 1, - "Fire": 1, - "Flying": 2, - "Ghost": 0, - "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": 0, - "Fairy": 0, - "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": {"spa":30,"spe":30} - } -}; From 9cff43a738e7e14543ab7c05ea13ba24525fe7ec Mon Sep 17 00:00:00 2001 From: Joimer Date: Fri, 11 Oct 2013 09:42:07 +0200 Subject: [PATCH 14/27] Gen 6: Implement Grass-types being immune to spore-type moves --- data/moves.js | 9 +++++++++ mods/gen5/moves.js | 14 ++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 mods/gen5/moves.js diff --git a/data/moves.js b/data/moves.js index 20cd3caa1a..0502d736d6 100644 --- a/data/moves.js +++ b/data/moves.js @@ -1882,6 +1882,9 @@ exports.BattleMovedex = { boosts: { spe: -2 }, + onTryHit: function(target, source) { + return !target.hasType('Grass'); + }, secondary: false, target: "normal", type: "Grass" @@ -11243,6 +11246,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 +11536,9 @@ exports.BattleMovedex = { name: "Stun Spore", pp: 30, priority: 0, + onTryHit: function(target, source) { + return !target.hasType('Grass'); + }, status: 'par', secondary: false, target: "normal", diff --git a/mods/gen5/moves.js b/mods/gen5/moves.js new file mode 100644 index 0000000000..12650eb16d --- /dev/null +++ b/mods/gen5/moves.js @@ -0,0 +1,14 @@ +exports.BattleMovedex = { + cottonspore: { + inherit: true, + onTryHit: null + }, + spore: { + inherit: true, + onTryHit: null + }, + stunspore: { + inherit: true, + onTryHit: null + } +}; From c5d9b19b4cd519039af7e8d6aa6e827596900606 Mon Sep 17 00:00:00 2001 From: Joimer Date: Fri, 11 Oct 2013 09:47:18 +0200 Subject: [PATCH 15/27] Gen 6: Update Hidden Power The prefered IVs change in Gen 6 due to the addition of a new type. --- battle-engine.js | 2 +- data/typechart.js | 21 +++++++++++---------- mods/gen5/moves.js | 1 + 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/battle-engine.js b/battle-engine.js index 8929e5fe31..91c0244648 100644 --- a/battle-engine.js +++ b/battle-engine.js @@ -297,7 +297,7 @@ var BattlePokemon = (function() { hpPowerX += i * (Math.floor(this.set.ivs[s] / 2) % 2); i *= 2; } - // Support for gen 6 metagame mods + // Support for gen 5 and gen 6 var maxTypes = (this.battle.gen && this.battle.gen === 6)? 16 : 15; this.hpType = hpTypes[Math.floor(hpTypeX * maxTypes / 63)]; this.hpPower = Math.floor(hpPowerX * 40 / 63) + 30; diff --git a/data/typechart.js b/data/typechart.js index 62b7ff811e..c188915285 100644 --- a/data/typechart.js +++ b/data/typechart.js @@ -20,7 +20,7 @@ exports.BattleTypeChart = { "Steel": 0, "Water": 0 }, - "HPivs": {"atk":30,"def":30,"spd":30} + "HPivs": {"spd":30,"spe":30} }, "Dark": { "damageTaken": { @@ -43,7 +43,7 @@ exports.BattleTypeChart = { "Steel": 0, "Water": 0 }, - "HPivs": {} + "HPivs": {"atk":30} }, "Dragon": { "damageTaken": { @@ -66,7 +66,7 @@ exports.BattleTypeChart = { "Steel": 0, "Water": 2 }, - "HPivs": {"atk":30} + "HPivs": {"def":30} }, "Electric": { "damageTaken": { @@ -112,7 +112,8 @@ exports.BattleTypeChart = { "Rock": 0, "Steel": 1, "Water": 0 - } + }, + "HPivs": {} }, "Fighting": { "damageTaken": { @@ -159,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": { @@ -182,7 +183,7 @@ 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": { @@ -229,7 +230,7 @@ exports.BattleTypeChart = { "Steel": 0, "Water": 2 }, - "HPivs": {"atk":30,"spa":30} + "HPivs": {"def":30,"spa":30} }, "Ground": { "damageTaken": { @@ -278,7 +279,7 @@ exports.BattleTypeChart = { "Steel": 1, "Water": 0 }, - "HPivs": {"atk":30,"def":30} + "HPivs": {"spe":30} }, "Normal": { "damageTaken": { @@ -348,7 +349,7 @@ exports.BattleTypeChart = { "Steel": 0, "Water": 0 }, - "HPivs": {"atk":30,"spe":30} + "HPivs": {"def":30,"spe":30} }, "Rock": { "damageTaken": { @@ -421,6 +422,6 @@ exports.BattleTypeChart = { "Steel": 2, "Water": 2 }, - "HPivs": {"atk":30,"def":30,"spa":30} + "HPivs": {"spa":30,"spe":30} } }; diff --git a/mods/gen5/moves.js b/mods/gen5/moves.js index 12650eb16d..449c653ddd 100644 --- a/mods/gen5/moves.js +++ b/mods/gen5/moves.js @@ -3,6 +3,7 @@ exports.BattleMovedex = { inherit: true, onTryHit: null }, + hiddenpowerfairy: null, spore: { inherit: true, onTryHit: null From c2eefe12b98e3ed3880f03c74b7656bf1ff44760 Mon Sep 17 00:00:00 2001 From: Joimer Date: Fri, 11 Oct 2013 09:59:27 +0200 Subject: [PATCH 16/27] Gen 5: Add init script The init script will set the battle generation to 5 and delete mod the Learnsets so no moves from gen 6 are used. --- mods/gen5/scripts.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 mods/gen5/scripts.js 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]; + } + } + } +}; From 29c4021bde93fed516416c998ab1bf6b199e884b Mon Sep 17 00:00:00 2001 From: Joimer Date: Fri, 11 Oct 2013 10:02:00 +0200 Subject: [PATCH 17/27] Gens 5 & 6: Update typings and add gen 5 Pokedex entries --- data/pokedex.js | 21 ++++++++++++--------- mods/gen5/pokedex.js | 11 +++++++++++ 2 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 mods/gen5/pokedex.js diff --git a/data/pokedex.js b/data/pokedex.js index 08c1bf373c..bafb3b88e1 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"]}, @@ -172,7 +172,7 @@ 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"]}, @@ -182,8 +182,8 @@ mareep:{num:179,species:"Mareep",types:["Electric"],baseStats:{hp:55,atk:40,def: 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"]}, @@ -281,7 +281,7 @@ wingull:{num:278,species:"Wingull",types:["Water","Flying"],baseStats:{hp:40,atk 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"]}, +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"]}, @@ -302,7 +302,7 @@ nosepass:{num:299,species:"Nosepass",types:["Rock"],baseStats:{hp:30,atk:45,def: 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"]}, @@ -694,6 +694,9 @@ 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:45,atk:49,def:49,spa:65,spd:65,spe:45},abilities:{0:"Overgrow"},heightm:0.7,weightkg:6.9,color:"Green",evos:[],eggGroups:["Plant"]}, +fennekin:{num:653,species:"Fennekin",types:["Fire"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:45,atk:49,def:49,spa:65,spd:65,spe:45},abilities:{0:"Blaze"},heightm:0.7,weightkg:6.9,color:"Red",evos:[],eggGroups:[]}, +froakie:{num:656,species:"Froakie",types:["Water"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:45,atk:49,def:49,spa:65,spd:65,spe:45},abilities:{0:"Torrent"},heightm:0.7,weightkg:6.9,color:"Blue",evos:[],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/mods/gen5/pokedex.js b/mods/gen5/pokedex.js new file mode 100644 index 0000000000..dde8c36375 --- /dev/null +++ b/mods/gen5/pokedex.js @@ -0,0 +1,11 @@ +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"]}, +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"]}, +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"]}, +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"]} +}; From 6d8f648855a79ae9c26935d00472e865ef1bfc53 Mon Sep 17 00:00:00 2001 From: Joimer Date: Fri, 11 Oct 2013 10:12:46 +0200 Subject: [PATCH 18/27] Gens 5 and 6: Update moves. Add gen 6 nerf of elemental attacks. Add gen 6 static base power of Hidden Power of 60. Change type of some attacks to Fairy on gen 6. Add to mod 5 all gen 6 changes so mod 5 keeps the same way. --- battle-engine.js | 4 +- data/moves.js | 59 +++++++++++----------- mods/gen5/moves.js | 123 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 153 insertions(+), 33 deletions(-) diff --git a/battle-engine.js b/battle-engine.js index 91c0244648..0b1636b870 100644 --- a/battle-engine.js +++ b/battle-engine.js @@ -298,9 +298,9 @@ var BattlePokemon = (function() { i *= 2; } // Support for gen 5 and gen 6 - var maxTypes = (this.battle.gen && this.battle.gen === 6)? 16 : 15; + 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 = { diff --git a/data/moves.js b/data/moves.js index 0502d736d6..2105b6944d 100644 --- a/data/moves.js +++ b/data/moves.js @@ -958,7 +958,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).", @@ -3487,7 +3487,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.", @@ -3748,7 +3748,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.", @@ -5385,10 +5385,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.", @@ -5406,7 +5403,7 @@ exports.BattleMovedex = { }, "hiddenpowerbug": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5420,7 +5417,7 @@ exports.BattleMovedex = { }, "hiddenpowerdark": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5434,7 +5431,7 @@ exports.BattleMovedex = { }, "hiddenpowerdragon": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5448,7 +5445,7 @@ exports.BattleMovedex = { }, "hiddenpowerelectric": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5463,7 +5460,7 @@ exports.BattleMovedex = { }, "hiddenpowerfairy": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5479,7 +5476,7 @@ exports.BattleMovedex = { }, "hiddenpowerfighting": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5494,7 +5491,7 @@ exports.BattleMovedex = { }, "hiddenpowerfire": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5509,7 +5506,7 @@ exports.BattleMovedex = { }, "hiddenpowerflying": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5523,7 +5520,7 @@ exports.BattleMovedex = { }, "hiddenpowerghost": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5537,7 +5534,7 @@ exports.BattleMovedex = { }, "hiddenpowergrass": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5552,7 +5549,7 @@ exports.BattleMovedex = { }, "hiddenpowerground": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5566,7 +5563,7 @@ exports.BattleMovedex = { }, "hiddenpowerice": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5581,7 +5578,7 @@ exports.BattleMovedex = { }, "hiddenpowerpoison": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5595,7 +5592,7 @@ exports.BattleMovedex = { }, "hiddenpowerpsychic": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5609,7 +5606,7 @@ exports.BattleMovedex = { }, "hiddenpowerrock": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5623,7 +5620,7 @@ exports.BattleMovedex = { }, "hiddenpowersteel": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5637,7 +5634,7 @@ exports.BattleMovedex = { }, "hiddenpowerwater": { accuracy: 100, - basePower: 70, + basePower: 60, category: "Special", desc: "", shortDesc: "", @@ -5744,7 +5741,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.", @@ -5785,7 +5782,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.", @@ -5920,7 +5917,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.", @@ -11750,7 +11747,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.", @@ -12260,7 +12257,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.", @@ -12364,7 +12361,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.", @@ -13254,7 +13251,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/mods/gen5/moves.js b/mods/gen5/moves.js index 449c653ddd..dd5b58afec 100644 --- a/mods/gen5/moves.js +++ b/mods/gen5/moves.js @@ -1,9 +1,112 @@ exports.BattleMovedex = { + blizzard: { + inherit: true, + basePower: 120 + }, + 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 + }, + moonlight: { + inherit: true, + type: "Normal" + }, + fireblast: { + inherit: true, + basePower: 120 + }, + flamethrower: { + inherit: true, + basePower: 95 + }, spore: { inherit: true, onTryHit: null @@ -11,5 +114,25 @@ exports.BattleMovedex = { 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 + }, + willowisp: { + inherit: true, + accuracy: 75 } }; From 43260e88f6c2568ed9269a6a7134cd93358c16d6 Mon Sep 17 00:00:00 2001 From: The Immortal Date: Fri, 11 Oct 2013 17:18:14 +0400 Subject: [PATCH 19/27] Add Gen 6 Pokemon --- data/pokedex.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 69 insertions(+), 3 deletions(-) diff --git a/data/pokedex.js b/data/pokedex.js index bafb3b88e1..c4380a41af 100644 --- a/data/pokedex.js +++ b/data/pokedex.js @@ -694,9 +694,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:45,atk:49,def:49,spa:65,spd:65,spe:45},abilities:{0:"Overgrow"},heightm:0.7,weightkg:6.9,color:"Green",evos:[],eggGroups:["Plant"]}, -fennekin:{num:653,species:"Fennekin",types:["Fire"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:45,atk:49,def:49,spa:65,spd:65,spe:45},abilities:{0:"Blaze"},heightm:0.7,weightkg:6.9,color:"Red",evos:[],eggGroups:[]}, -froakie:{num:656,species:"Froakie",types:["Water"],genderRatio:{M:0.875,F:0.125},baseStats:{hp:45,atk:49,def:49,spa:65,spd:65,spe:45},abilities:{0:"Torrent"},heightm:0.7,weightkg:6.9,color:"Blue",evos:[],eggGroups:[]}, +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"]}, From 7e9009fca1e39fe390a767ea7cb4e2306ba962f3 Mon Sep 17 00:00:00 2001 From: The Immortal Date: Fri, 11 Oct 2013 17:26:35 +0400 Subject: [PATCH 20/27] Add Pokemon that changed types in Gen 6 --- data/pokedex.js | 17 +++++++++-------- mods/gen5/pokedex.js | 11 ++++++++++- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/data/pokedex.js b/data/pokedex.js index c4380a41af..75da9d0d2d 100644 --- a/data/pokedex.js +++ b/data/pokedex.js @@ -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"]}, @@ -174,8 +174,8 @@ pichu:{num:172,species:"Pichu",types:["Electric"],baseStats:{hp:20,atk:40,def:15 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:["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"]}, @@ -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,8 +279,8 @@ 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"]}, +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"]}, @@ -297,7 +297,7 @@ 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"]}, @@ -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"]}, diff --git a/mods/gen5/pokedex.js b/mods/gen5/pokedex.js index dde8c36375..a5b3451c43 100644 --- a/mods/gen5/pokedex.js +++ b/mods/gen5/pokedex.js @@ -3,9 +3,18 @@ clefairy:{num:35,species:"Clefairy",types:["Normal"],genderRatio:{M:0.25,F:0.75} 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"]}, -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"]} +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"]} }; From 0bb7fc592fe6db3b90699e541983cb77e712d600 Mon Sep 17 00:00:00 2001 From: The Immortal Date: Fri, 11 Oct 2013 17:34:56 +0400 Subject: [PATCH 21/27] Add Gen 6 move changes --- data/moves.js | 16 ++++++++-------- mods/gen5/moves.js | 26 ++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/data/moves.js b/data/moves.js index 2105b6944d..4d4f59dc2a 100644 --- a/data/moves.js +++ b/data/moves.js @@ -1225,7 +1225,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.", @@ -4175,7 +4175,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.", @@ -4229,7 +4229,7 @@ exports.BattleMovedex = { "furycutter": { num: 210, accuracy: 95, - basePower: 20, + basePower: 40, basePowerCallback: function(pokemon) { if (!pokemon.volatiles.furycutter) { pokemon.addVolatile('furycutter'); @@ -6683,7 +6683,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.", @@ -9513,8 +9513,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.", @@ -12871,13 +12871,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, diff --git a/mods/gen5/moves.js b/mods/gen5/moves.js index dd5b58afec..6700067ad8 100644 --- a/mods/gen5/moves.js +++ b/mods/gen5/moves.js @@ -3,6 +3,10 @@ exports.BattleMovedex = { inherit: true, basePower: 120 }, + bubble: { + inherit: true, + basePower: 20 + }, charm: { inherit: true, type: "Normal" @@ -95,6 +99,10 @@ exports.BattleMovedex = { inherit: true, basePower: 95 }, + lowsweep: { + inherit: true, + basePower: 60 + }, moonlight: { inherit: true, type: "Normal" @@ -107,6 +115,19 @@ exports.BattleMovedex = { 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 @@ -131,6 +152,11 @@ exports.BattleMovedex = { inherit: true, basePower: 95 }, + vinewhip: { + inherit: true, + basePower: 35, + pp: 15 + }, willowisp: { inherit: true, accuracy: 75 From 16af34c0a891f313e75ce2141722f878cbf58735 Mon Sep 17 00:00:00 2001 From: The Immortal Date: Fri, 11 Oct 2013 19:02:12 +0400 Subject: [PATCH 22/27] Add new Gen 6 moves --- data/moves.js | 485 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 485 insertions(+) diff --git a/data/moves.js b/data/moves.js index 4d4f59dc2a..a03b1c8449 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, @@ -1108,6 +1127,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, @@ -1960,6 +1996,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, @@ -2155,6 +2232,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, @@ -2745,6 +2839,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, @@ -3335,6 +3448,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, @@ -3944,6 +4073,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, @@ -4101,6 +4246,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, @@ -4119,6 +4280,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, @@ -4418,6 +4598,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, @@ -4491,6 +4708,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, @@ -6159,6 +6394,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, @@ -7564,6 +7817,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 +7992,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 +8200,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 +8384,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 +8533,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 +8590,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, @@ -12568,6 +13015,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, @@ -13116,6 +13584,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, From 2b276f7be5020cb6ab560b3e543fb109d54fd924 Mon Sep 17 00:00:00 2001 From: The Immortal Date: Fri, 11 Oct 2013 19:33:45 +0400 Subject: [PATCH 23/27] Add Pulse flag (for Mega Launcher) --- data/moves.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/moves.js b/data/moves.js index a03b1c8449..dfadec1d5e 100644 --- a/data/moves.js +++ b/data/moves.js @@ -2208,6 +2208,7 @@ exports.BattleMovedex = { name: "Dark Pulse", pp: 15, priority: 0, + isPulseMove: true, secondary: { chance: 20, volatileStatus: 'flinch' @@ -2782,6 +2783,7 @@ exports.BattleMovedex = { name: "Dragon Pulse", pp: 10, priority: 0, + isPulseMove: true, secondary: false, target: "any", type: "Dragon" @@ -13509,6 +13511,7 @@ exports.BattleMovedex = { name: "Water Pulse", pp: 20, priority: 0, + isPulseMove: true, secondary: { chance: 20, volatileStatus: 'confusion' From e9f2d7d5e3d0fe113736b48d3be48df19cf244aa Mon Sep 17 00:00:00 2001 From: The Immortal Date: Fri, 11 Oct 2013 19:58:45 +0400 Subject: [PATCH 24/27] Add biting type move flag (for Strong Jaw) --- data/moves.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/data/moves.js b/data/moves.js index dfadec1d5e..d7d93cddbc 100644 --- a/data/moves.js +++ b/data/moves.js @@ -928,6 +928,7 @@ exports.BattleMovedex = { pp: 25, priority: 0, isContact: true, + isBiteAttack: true, secondary: { chance: 30, volatileStatus: 'flinch' @@ -2089,6 +2090,7 @@ exports.BattleMovedex = { pp: 15, priority: 0, isContact: true, + isBiteAttack: true, secondary: { chance: 20, boosts: { @@ -3647,6 +3649,7 @@ exports.BattleMovedex = { pp: 15, priority: 0, isContact: true, + isBiteAttack: true, secondaries: [ { chance: 10, status: 'brn' @@ -6062,6 +6065,7 @@ exports.BattleMovedex = { pp: 15, priority: 0, isContact: true, + isBiteAttack: true, secondary: { chance: 10, volatileStatus: 'flinch' @@ -6218,6 +6222,7 @@ exports.BattleMovedex = { pp: 15, priority: 0, isContact: true, + isBiteAttack: true, secondaries: [ { chance: 10, status: 'frz' @@ -8662,6 +8667,7 @@ exports.BattleMovedex = { pp: 15, priority: 0, isContact: true, + isBiteAttack: true, secondary: { chance: 30, status: 'tox' @@ -12739,6 +12745,7 @@ exports.BattleMovedex = { pp: 15, priority: 0, isContact: true, + isBiteAttack: true, secondaries: [ { chance: 10, status: 'par' From d23bb245ac340a7ea84cf8d534605e133a85133a Mon Sep 17 00:00:00 2001 From: The Immortal Date: Fri, 11 Oct 2013 20:07:33 +0400 Subject: [PATCH 25/27] Add new Gen 6 Abilities --- data/abilities.js | 204 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 204 insertions(+) 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.", From 3cc455f27557739b32f89fe647533da26bd9f353 Mon Sep 17 00:00:00 2001 From: Guangcong Luo Date: Fri, 11 Oct 2013 09:22:03 -0700 Subject: [PATCH 26/27] Default gen is now 6 --- data/scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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); From 84f983ca06c8f39985e290664a098208c7fad3be Mon Sep 17 00:00:00 2001 From: Guangcong Luo Date: Fri, 11 Oct 2013 09:40:45 -0700 Subject: [PATCH 27/27] New modifier event chain system --- battle-engine.js | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/battle-engine.js b/battle-engine.js index 0b1636b870..950b7e8570 100644 --- a/battle-engine.js +++ b/battle-engine.js @@ -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])