diff --git a/data/abilities.js b/data/abilities.js index 8505673b5..71f5d461c 100644 --- a/data/abilities.js +++ b/data/abilities.js @@ -97,10 +97,10 @@ exports.BattleAbilities = { desc: "If the user moves last, the power of that move is increased by 30%.", shortDesc: "This Pokemon's attacks do 1.3x damage if it is the last to move in a turn.", onBasePowerPriority: 8, - onBasePower: function(bpMod, attacker, defender, move) { + onBasePower: function(basePower, attacker, defender, move) { if (!this.willMove(defender)) { this.debug('Analytic boost'); - return this.chain(bpMod, [0x14CD, 0x1000]); // The Analytic modifier is slightly higher than the normal 1.3 (0x14CC) + return this.chainModify([0x14CD, 0x1000]); // The Analytic modifier is slightly higher than the normal 1.3 (0x14CC) } }, id: "analytic", @@ -217,17 +217,17 @@ exports.BattleAbilities = { desc: "When its health reaches one-third or less of its max HP, this Pokemon's Fire-type attacks receive a 50% boost in power.", shortDesc: "When this Pokemon has 1/3 or less of its max HP, its Fire attacks do 1.5x damage.", onModifyAtkPriority: 5, - onModifyAtk: function(atkMod, attacker, defender, move) { + onModifyAtk: function(atk, attacker, defender, move) { if (move.type === 'Fire' && attacker.hp <= attacker.maxhp/3) { this.debug('Blaze boost'); - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } }, onModifySpAPriority: 5, - onModifySpA: function(atkMod, attacker, defender, move) { + onModifySpA: function(atk, attacker, defender, move) { if (move.type === 'Fire' && attacker.hp <= attacker.maxhp/3) { this.debug('Blaze boost'); - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } }, id: "blaze", @@ -393,9 +393,9 @@ exports.BattleAbilities = { 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) { + onBasePower: function(basePower, attacker, defender, move) { if (move.type === 'Dark') { - return this.chain(bpMod, 1.2); + return this.chainModify(1.2); } }, id: "darkaura", @@ -408,15 +408,15 @@ exports.BattleAbilities = { 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.", onModifyAtkPriority: 5, - onModifyAtk: function(atkMod, pokemon) { + onModifyAtk: function(atk, pokemon) { if (pokemon.hp < pokemon.maxhp/2) { - return this.chain(atkMod, .5); + return this.chainModify(0.5); } }, onModifySpAPriority: 5, - onModifySpA: function(atkMod, pokemon) { + onModifySpA: function(atk, pokemon) { if (pokemon.hp < pokemon.maxhp/2) { - return this.chain(atkMod, .5); + return this.chainModify(0.5); } }, onResidual: function(pokemon) { @@ -477,7 +477,6 @@ exports.BattleAbilities = { shortDesc: "On switch-in, this Pokemon summons Rain Dance until another weather replaces it.", onStart: function(source) { this.setWeather('raindance'); - this.weatherData.duration = 0; }, id: "drizzle", name: "Drizzle", @@ -489,7 +488,6 @@ exports.BattleAbilities = { shortDesc: "On switch-in, this Pokemon summons Sunny Day until another weather replaces it.", onStart: function(source) { this.setWeather('sunnyday'); - this.weatherData.duration = 0; }, id: "drought", name: "Drought", @@ -508,9 +506,9 @@ exports.BattleAbilities = { } }, onBasePowerPriority: 7, - onFoeBasePower: function(bpMod, attacker, defender, move) { + onFoeBasePower: function(basePower, attacker, defender, move) { if (move.type === 'Fire') { - return this.chain(bpMod, 1.25); + return this.chainModify(1.25); } }, onWeather: function(target, source, effect) { @@ -554,9 +552,9 @@ exports.BattleAbilities = { desc: "Increases the power of all Fairy-type moves in battle.", shortDesc: "Increases the power of all Fairy-type moves in battle.", onBasePowerPriority: 8, - onBasePower: function(bpMod, attacker, defender, move) { + onBasePower: function(basePower, attacker, defender, move) { if (move.type === 'Fairy') { - return this.chain(bpMod, 1.2); + return this.chainModify(1.2); } }, id: "fairyaura", @@ -568,10 +566,10 @@ exports.BattleAbilities = { "filter": { desc: "This Pokemon receives one-fourth reduced damage from Super Effective attacks.", shortDesc: "This Pokemon receives 3/4 damage from super effective attacks.", - onSourceModifyDamage: function(damageMod, source, target, move) { + onSourceModifyDamage: function(damage, source, target, move) { if (this.getEffectiveness(move.type, target) > 0) { this.debug('Filter neutralize'); - return this.chain(damageMod, 0.75); + return this.chainModify(0.75); } }, id: "filter", @@ -598,9 +596,9 @@ exports.BattleAbilities = { desc: "When the user with this ability is burned, its Special Attack is raised by 50%.", shortDesc: "When this Pokemon is burned, its special attacks do 1.5x damage.", onBasePowerPriority: 8, - onBasePower: function(bpMod, attacker, defender, move) { + onBasePower: function(basePower, attacker, defender, move) { if (attacker.status === 'brn' && move.category === 'Special') { - return this.chain(bpMod, 1.5); + return this.chainModify(1.5); } }, id: "flareboost", @@ -626,17 +624,17 @@ exports.BattleAbilities = { this.add('-start',target,'ability: Flash Fire'); }, onModifyAtkPriority: 5, - onModifyAtk: function(atkMod, attacker, defender, move) { + onModifyAtk: function(atk, attacker, defender, move) { if (move.type === 'Fire') { this.debug('Flash Fire boost'); - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } }, onModifySpAPriority: 5, - onModifySpA: function(atkMod, attacker, defender, move) { + onModifySpA: function(atk, attacker, defender, move) { if (move.type === 'Fire') { this.debug('Flash Fire boost'); - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } } }, @@ -668,17 +666,17 @@ exports.BattleAbilities = { } }, onModifyAtkPriority: 3, - onAllyModifyAtk: function(atkMod) { + onAllyModifyAtk: function(atk) { if (this.effectData.target.template.speciesid !== 'cherrim') return; if (this.isWeather('sunnyday')) { - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } }, onModifySpDPriority: 4, - onAllyModifySpD: function(spdMod) { + onAllyModifySpD: function(spd) { if (this.effectData.target.template.speciesid !== 'cherrim') return; if (this.isWeather('sunnyday')) { - return this.chain(spdMod, 1.5); + return this.chainModify(1.5); } }, id: "flowergift", @@ -764,10 +762,10 @@ exports.BattleAbilities = { shortDesc: "This Pokemon's allies receive 3/4 damage from other Pokemon's attacks.", id: "friendguard", name: "Friend Guard", - onAnyModifyDamage: function(damageMod, source, target, move) { + onAnyModifyDamage: function(damage, source, target, move) { if (target !== this.effectData.target && target.side === this.effectData.target.side) { this.debug('Friend Guard weaken') - return this.chain(damageMod, 0.75); + return this.chainModify(0.75); } }, rating: 0, @@ -791,8 +789,8 @@ exports.BattleAbilities = { 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); + onSourceModifyAtk: function(atk, attacker, defender, move) { + return this.chainModify(0.5); }, id: "furcoat", name: "Fur Coat", @@ -812,9 +810,9 @@ exports.BattleAbilities = { desc: "When this Pokemon is poisoned (including Toxic), burned, paralyzed or asleep (including self-induced Rest), its Attack stat receives a 50% boost; the burn status' Attack drop is also ignored.", shortDesc: "If this Pokemon is statused, its Attack is 1.5x; burn's Attack drop is ignored.", onModifyAtkPriority: 5, - onModifyAtk: function(atkMod, pokemon) { + onModifyAtk: function(atk, pokemon) { if (pokemon.status) { - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } }, id: "guts", @@ -865,9 +863,9 @@ exports.BattleAbilities = { desc: "This Pokemon receives half damage from both Fire-type attacks and residual burn damage.", shortDesc: "This Pokemon receives half damage from Fire-type attacks and burn damage.", onBasePowerPriority: 7, - onSourceBasePower: function(bpMod, attacker, defender, move) { + onSourceBasePower: function(basePower, attacker, defender, move) { if (move.type === 'Fire') { - return this.chain(bpMod, 0.5); + return this.chainModify(0.5); } }, onDamage: function(damage, target, source, effect) { @@ -903,8 +901,8 @@ exports.BattleAbilities = { 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.", onModifyAtkPriority: 5, - onModifyAtk: function(atkMod) { - return this.chain(atkMod, 2); + onModifyAtk: function(atk) { + return this.chainModify(2); }, id: "hugepower", name: "Huge Power", @@ -914,11 +912,10 @@ exports.BattleAbilities = { "hustle": { desc: "This Pokemon's Attack receives a 50% boost but its Physical attacks receive a 20% drop in Accuracy. For example, a 100% accurate move would become an 80% accurate move. The accuracy of moves that never miss, such as Aerial Ace, remains unaffected.", shortDesc: "This Pokemon's Attack is 1.5x and accuracy of its physical attacks is 0.8x.", - // This should be applied directly to the stat before any of these final modifiers are chained - // For now we just give it increased priority. - onModifyAtkPriority: 10, - onModifyAtk: function(atkMod) { - return this.chain(atkMod, 1.5); + // This should be applied directly to the stat as opposed to chaining witht he others + onModifyAtkPriority: 5, + onModifyAtk: function(atk) { + return this.modify(atk, 1.5); }, onModifyMove: function(move) { if (move.category === 'Physical' && typeof move.accuracy === 'number') { @@ -1107,10 +1104,10 @@ exports.BattleAbilities = { desc: "This Pokemon receives a 20% power boost for the following attacks: Bullet Punch, Comet Punch, Dizzy Punch, Drain Punch, Dynamicpunch, Fire Punch, Focus Punch, Hammer Arm, Ice Punch, Mach Punch, Mega Punch, Meteor Mash, Shadow Punch, Sky Uppercut, and Thunderpunch. Sucker Punch, which is known Ambush in Japan, is not boosted.", shortDesc: "This Pokemon's punch-based attacks do 1.2x damage. Sucker Punch is not boosted.", onBasePowerPriority: 8, - onBasePower: function(bpMod, attacker, defender, move) { + onBasePower: function(basePower, attacker, defender, move) { if (move.isPunchAttack) { this.debug('Iron Fist boost'); - return this.chain(bpMod, 1.2); + return this.chainModify(1.2); } }, id: "ironfist", @@ -1342,9 +1339,9 @@ exports.BattleAbilities = { desc: "When this Pokemon becomes burned, poisoned (including Toxic), paralyzed, frozen or put to sleep (including self-induced sleep via Rest), its Defense receives a 50% boost.", shortDesc: "If this Pokemon is statused, its Defense is 1.5x.", onModifyDefPriority: 6, - onModifyDef: function(defMod, pokemon) { + onModifyDef: function(def, pokemon) { if (pokemon.status) { - return this.chain(defMod, 1.5); + return this.chainModify(1.5); } }, id: "marvelscale", @@ -1356,9 +1353,9 @@ exports.BattleAbilities = { 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) { + onBasePower: function(basePower, attacker, defender, move) { if (move.isPulseMove) { - return this.chain(bpMod, 1.2); + return this.chainModify(1.2); } }, id: "megalauncher", @@ -1371,14 +1368,14 @@ exports.BattleAbilities = { 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.", onModifySpAPriority: 5, - onModifySpA: function(spaMod, pokemon) { + onModifySpA: function(spa, pokemon) { var allyActive = pokemon.side.active; if (allyActive.length === 1) { return; } for (var i=0; i= target.maxhp) { this.debug('Multiscale weaken'); - return this.chain(damageMod, 0.5); + return this.chainModify(0.5); } }, id: "multiscale", @@ -1595,17 +1592,17 @@ exports.BattleAbilities = { desc: "When its health reaches one-third or less of its max HP, this Pokemon's Grass-type attacks receive a 50% boost in power.", shortDesc: "When this Pokemon has 1/3 or less of its max HP, its Grass attacks do 1.5x damage.", onModifyAtkPriority: 5, - onModifyAtk: function(atkMod, attacker, defender, move) { + onModifyAtk: function(atk, attacker, defender, move) { if (move.type === 'Grass' && attacker.hp <= attacker.maxhp/3) { this.debug('Overgrow boost'); - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } }, onModifySpAPriority: 5, - onModifySpA: function(atkMod, attacker, defender, move) { + onModifySpA: function(atk, attacker, defender, move) { if (move.type === 'Grass' && attacker.hp <= attacker.maxhp/3) { this.debug('Overgrow boost'); - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } }, id: "overgrow", @@ -1687,7 +1684,7 @@ exports.BattleAbilities = { rating: 1, num: 124 }, - "pixilate": { + "pixelite": { desc: "Turn all of this Pokemon's Normal-typed attacks into Fairy-typed.", shortDesc: "This Pokemon's Normal moves become Fairy.", onModifyMove: function(move) { @@ -1705,14 +1702,14 @@ exports.BattleAbilities = { 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.", onModifySpAPriority: 5, - onModifySpA: function(spaMod, pokemon) { + onModifySpA: function(spa, pokemon) { var allyActive = pokemon.side.active; if (allyActive.length === 1) { return; } for (var i=0; i 0) { this.debug('Solid Rock neutralize'); - return this.modify(damageMod, 0.75); + return this.chainModify(0.75); } }, id: "solidrock", @@ -2322,7 +2317,14 @@ exports.BattleAbilities = { "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 + onBeforeMove: function(attacker, defender, move) { + if (attacker.template.baseSpecies !== 'Aegislash') return; + var targetSpecies = (move.category === 'Status'?'Aegislash':'Aegislash-Blade'); + this.debug('target: '+targetSpecies+', current: '+attacker.template.species); + if (attacker.template.species !== targetSpecies && attacker.formeChange(targetSpecies)) { + this.add('-formechange', attacker, targetSpecies); + } + }, id: "stancechange", name: "Stance Change", rating: 4.5, @@ -2415,9 +2417,9 @@ exports.BattleAbilities = { 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) { + onBasePower: function(basePower, attacker, defender, move) { if (move.isBiteAttack) { - return this.chain(bpMod, 1.5); + return this.chainModify(1.5); } }, id: "strongjaw", @@ -2473,17 +2475,17 @@ exports.BattleAbilities = { desc: "When its health reaches one-third or less of its max HP, this Pokemon's Bug-type attacks receive a 50% boost in power.", shortDesc: "When this Pokemon has 1/3 or less of its max HP, its Bug attacks do 1.5x damage.", onModifyAtkPriority: 5, - onModifyAtk: function(atkMod, attacker, defender, move) { + onModifyAtk: function(atk, attacker, defender, move) { if (move.type === 'Bug' && attacker.hp <= attacker.maxhp/3) { this.debug('Swarm boost'); - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } }, onModifySpAPriority: 5, - onModifySpA: function(atkMod, attacker, defender, move) { + onModifySpA: function(atk, attacker, defender, move) { if (move.type === 'Bug' && attacker.hp <= attacker.maxhp/3) { this.debug('Swarm boost'); - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } }, id: "swarm", @@ -2546,10 +2548,10 @@ exports.BattleAbilities = { desc: "When this Pokemon uses an attack that has 60 Base Power or less, the move's Base Power receives a 50% boost. For example, a move with 60 Base Power effectively becomes a move with 90 Base Power.", shortDesc: "This Pokemon's attacks of 60 Base Power or less do 1.5x damage. Includes Struggle.", onBasePowerPriority: 8, - onBasePower: function(bpMod, attacker, defender, move) { + onBasePower: function(basePower, attacker, defender, move) { if (basePower <= 60) { this.debug('Technician boost'); - return this.chain(bpMod, 1.5); + return this.chainModify(1.5); } }, id: "technician", @@ -2596,17 +2598,17 @@ exports.BattleAbilities = { desc: "This Pokemon receives halved damage from Ice-type and Fire-type attacks.", shortDesc: "This Pokemon receives half damage from Fire- and Ice-type attacks.", onModifyAtkPriority: 6, - onSourceModifyAtk: function(atkMod, attacker, defender, move) { + onSourceModifyAtk: function(atk, attacker, defender, move) { if (move.type === 'Ice' || move.type === 'Fire') { this.debug('Thick Fat weaken'); - return this.chain(atkMod, 0.5); + return this.chainModify(0.5); } }, onModifySpAPriority: 5, - onSourceModifySpA: function(atkMod, attacker, defender, move) { + onSourceModifySpA: function(atk, attacker, defender, move) { if (move.type === 'Ice' || move.type === 'Fire') { this.debug('Thick Fat weaken'); - return this.chain(atkMod, 0.5); + return this.chainModify(0.5); } }, id: "thickfat", @@ -2617,10 +2619,10 @@ exports.BattleAbilities = { "tintedlens": { desc: "Doubles the power of moves that are Not Very Effective against opponents.", shortDesc: "This Pokemon's attacks that are not very effective on a target do double damage.", - onModifyDamage: function(damageMod, source, target, move) { + onModifyDamage: function(damage, source, target, move) { if (this.getEffectiveness(move.type, target) < 0) { this.debug('Tinted Lens boost'); - return this.chain(damageMod, 2); + return this.chainModify(2); } }, id: "tintedlens", @@ -2632,17 +2634,17 @@ exports.BattleAbilities = { desc: "When its health reaches one-third or less of its max HP, this Pokemon's Water-type attacks receive a 50% boost in power.", shortDesc: "When this Pokemon has 1/3 or less of its max HP, its Water attacks do 1.5x damage.", onModifyAtkPriority: 5, - onModifyAtk: function(atkMod, attacker, defender, move) { + onModifyAtk: function(atk, attacker, defender, move) { if (move.type === 'Water' && attacker.hp <= attacker.maxhp/3) { this.debug('Torrent boost'); - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } }, onModifySpAPriority: 5, - onModifySpA: function(atkMod, attacker, defender, move) { + onModifySpA: function(atk, attacker, defender, move) { if (move.type === 'Water' && attacker.hp <= attacker.maxhp/3) { this.debug('Torrent boost'); - return this.chain(atkMod, 1.5); + return this.chainModify(1.5); } }, id: "torrent", @@ -2654,9 +2656,9 @@ exports.BattleAbilities = { desc: "When the user is poisoned, its Attack stat is raised by 50%.", shortDesc: "When this Pokemon is poisoned, its physical attacks do 1.5x damage.", onBasePowerPriority: 8, - onBasePower: function(bpMod, attacker, defender, move) { + onBasePower: function(basePower, attacker, defender, move) { if ((attacker.status === 'psn' || attacker.status === 'tox') && move.category === 'Physical') { - return this.chain(bpMod, 1.5); + return this.chainModify(1.5); } }, id: "toxicboost", @@ -2668,9 +2670,9 @@ exports.BattleAbilities = { 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) { + onBasePower: function(basePower, attacker, defender, move) { if (move.category === 'Physical') { - return this.chain(bpMod, 1.2); + return this.chainModify(1.2); } }, id: "toughclaws", diff --git a/data/learnsets.js b/data/learnsets.js index 28b766937..7a868a6f2 100644 --- a/data/learnsets.js +++ b/data/learnsets.js @@ -687,10 +687,10 @@ exports.BattleLearnsets = { greninja:{learnset:{}}, bunnelby:{learnset:{dig:["6L0"],doubleslap:["6L0"],mudslap:["6L0"],quickattack:["6L0"],takedown:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, diggersby:{learnset:{}}, - fletchling:{learnset:{aerialace:["6L0"],agility:["6L0"],bravebird:["6L0"],flail:["6L0"],flamecharge:["6L0"],flareblitz:["6L0"],growl:["6L0"],peck:["6L0"],quickattack:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, + fletchling:{learnset:{aerialace:["6L0"],agility:["6L0"],bravebird:["6L0"],flail:["6L0"],flamecharge:["6L0"],flareblitz:["6L0"],swordsdance:["6L0"],growl:["6L0"],peck:["6L0"],quickattack:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, fletchinder:{learnset:{}}, talonflame:{learnset:{}}, - scatterbug:{learnset:{harden:["6L0"],infestation:["6L0"],powder:["6L0"],protect:["6L0"],stringshot:["6L1"],strugglebug:["6L0"],tackle:["6L1"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, + scatterbug:{learnset:{harden:["6L0"],infestation:["6L0"],drainingkiss:["6L0"],powder:["6L0"],aromatherapy:["6L0"],psybeam:["6L0"],protect:["6L0"],stringshot:["6L1"],strugglebug:["6L0"],tackle:["6L1"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, spewpa:{learnset:{}}, vivillion:{learnset:{}}, litleo:{learnset:{echoedvoice:["6L0"],headbutt:["6L0"],flamethrower:["6L0"],nobleroar:["6L0"],takedown:["6L0"],workup:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, @@ -703,9 +703,9 @@ exports.BattleLearnsets = { pancham:{learnset:{workup:["6L0"],karatechop:["6L0"],bodyslam:["6L0"],cometpunch:["6L0"],slash:["6L0"],circlethrow:["6L0"],vitalthrow:["6L0"],entrainment:["6L0"],hammerarm:["6L0"],partingshot:["6L0"],surf:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, pangoro:{learnset:{}}, furfrou:{learnset:{babydolleyes:["6L0"],growl:["6L0"],sandattack:["6L0"],tackle:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, - espurr:{learnset:{disalarmingvoice:["6L0"],extrasensory:["6L0"],miracleeye:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, + espurr:{learnset:{disalarmingvoice:["6L0"],extrasensory:["6L0"],psybeam:["6L0"],covet:["6L0"],psyshock:["6L0"],miracleeye:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, meowstic:{learnset:{}}, - honedge:{learnset:{aerialace:["6L0"],autotomize:["6L0"],furycutter:["6L0"],headsmash:["6L0"],irondefense:["6L0"],kingsshield:["6L0"],ironhead:["6L0"],nightslash:["6L0"],powertrick:["6L0"],pursuit:["6L0"],sacredsword:["6L0"],shadowsneak:["6L0"],slash:["6L0"],swordsdance:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, + honedge:{learnset:{aerialace:["6L0"],autotomize:["6L0"],furycutter:["6L0"],headsmash:["6L0"],irondefense:["6L0"],kingsshield:["6L0"],ironhead:["6L0"],nightslash:["6L0"],powertrick:["6L0"],pursuit:["6L0"],sacredsword:["6L0"],shadowsneak:["6L0"],slash:["6L0"],metalsound:["6L0"],tackle:["6L0"],swordsdance:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, doublade:{learnset:{}}, aegislash:{learnset:{}}, spritzee:{learnset:{aromatherapy:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, @@ -718,7 +718,7 @@ exports.BattleLearnsets = { barbaracle:{learnset:{}}, skrelp:{learnset:{acid:["6L0"],camouflage:["6L0"],hydropump:["6L0"],poisontail:["6L0"],sludgebomb:["6L0"],surf:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, dragalge:{learnset:{}}, - clauncher:{learnset:{crabhammer:["6L0"],swordsdance:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, + clauncher:{learnset:{healpulse:["6L0"],darkpulse:["6L0"],dragonpulse:["6L0"],aurasphere:["6L0"],crabhammer:["6L0"],swordsdance:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, clawitzer:{learnset:{}}, helioptile:{learnset:{charge:["6L0"],paraboliccharge:["6L0"],quickattack:["6L0"],razorwind:["6L0"],magneticfield:["6L0"],rockslide:["6L0"],tailwhip:["6L0"],thundershock:["6L0"],thunderbolt:["6L0"],rest:["6M"],sleeptalk:["6M"],protect:["6M"],substitute:["6M"],"return":["6M"],frustration:["6M"],hiddenpower:["6M"]}}, heliolisk:{learnset:{}}, diff --git a/data/moves.js b/data/moves.js index e73a410cf..109206c3c 100644 --- a/data/moves.js +++ b/data/moves.js @@ -2847,8 +2847,8 @@ exports.BattleMovedex = { num: -6, gen: 6, accuracy: 100, - basePower: 75, - category: "Physical", + basePower: 50, + category: "Special", 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", @@ -2857,7 +2857,7 @@ exports.BattleMovedex = { pp: 10, priority: 0, isContact: true, - drain: [1,2], + drain: [3,4], secondary: false, target: "normal", type: "Fairy" diff --git a/data/pokedex.js b/data/pokedex.js index 07b67a5ae..c25e2b0d2 100644 --- a/data/pokedex.js +++ b/data/pokedex.js @@ -31,10 +31,10 @@ pikachu:{num:25,species:"Pikachu",types:["Electric"],baseStats:{hp:35,atk:55,def raichu:{num:26,species:"Raichu",types:["Electric"],baseStats:{hp:60,atk:90,def:55,spa:90,spd:80,spe:100},abilities:{0:"Static",DW:"Lightningrod"},heightm:0.8,weightkg:30,color:"Yellow",prevo:"pikachu",evoLevel:1,eggGroups:["Ground","Fairy"]}, sandshrew:{num:27,species:"Sandshrew",types:["Ground"],baseStats:{hp:50,atk:75,def:85,spa:20,spd:30,spe:40},abilities:{0:"Sand Veil",DW:"Sand Rush"},heightm:0.6,weightkg:12,color:"Yellow",evos:["sandslash"],eggGroups:["Ground"]}, sandslash:{num:28,species:"Sandslash",types:["Ground"],baseStats:{hp:75,atk:100,def:110,spa:45,spd:55,spe:65},abilities:{0:"Sand Veil",DW:"Sand Rush"},heightm:1,weightkg:29.5,color:"Yellow",prevo:"sandshrew",evoLevel:22,eggGroups:["Ground"]}, -nidoranf:{num:29,species:"NidoranF",types:["Poison"],gender:"F",baseStats:{hp:55,atk:47,def:52,spa:40,spd:40,spe:41},abilities:{0:"Poison Point",1:"Rivalry",DW:"Hustle"},heightm:0.4,weightkg:7,color:"Blue",evos:["nidorina"],eggGroups:["Monster","Ground"]}, +nidoranf:{num:29,species:"Nidoran-F",types:["Poison"],gender:"F",baseStats:{hp:55,atk:47,def:52,spa:40,spd:40,spe:41},abilities:{0:"Poison Point",1:"Rivalry",DW:"Hustle"},heightm:0.4,weightkg:7,color:"Blue",evos:["nidorina"],eggGroups:["Monster","Ground"]}, nidorina:{num:30,species:"Nidorina",types:["Poison"],gender:"F",baseStats:{hp:70,atk:62,def:67,spa:55,spd:55,spe:56},abilities:{0:"Poison Point",1:"Rivalry",DW:"Hustle"},heightm:0.8,weightkg:20,color:"Blue",prevo:"nidoranf",evos:["nidoqueen"],evoLevel:16,eggGroups:["No Eggs"]}, nidoqueen:{num:31,species:"Nidoqueen",types:["Poison","Ground"],gender:"F",baseStats:{hp:90,atk:82,def:87,spa:75,spd:85,spe:76},abilities:{0:"Poison Point",1:"Rivalry",DW:"Sheer Force"},heightm:1.3,weightkg:60,color:"Blue",prevo:"nidorina",evoLevel:16,eggGroups:["No Eggs"]}, -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"]}, +nidoranm:{num:32,species:"Nidoran-M",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:["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"]}, @@ -763,7 +763,7 @@ dedenne:{num:702,species:"Dedenne",types:["Electric","Fairy"],baseStats:{hp:80,a 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:[""]}, +goodra:{num:706,species:"Goodra",types:["Dragon"],baseStats:{hp:80,atk:95,def:80,spa:115,spd:140,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:[""]},