mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-09-12 22:09:55 -05:00
Sync gen 6 data
This commit is contained in:
@@ -172,7 +172,11 @@ exports.BattleAbilities = {
|
||||
"aromaveil": {
|
||||
desc: "Protects allies from attacks that limit their move choices.",
|
||||
shortDesc: "Protects allies from attacks that limit their move choices.",
|
||||
//todo
|
||||
onAllyTryHit: function(target, source, move) {
|
||||
if (move && move.id in {disable:1, encore:1, healblock:1, imprison:1, taunt:1, torment:1}) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
id: "aromaveil",
|
||||
name: "Aroma Veil",
|
||||
rating: 0,
|
||||
@@ -259,7 +263,7 @@ exports.BattleAbilities = {
|
||||
desc: "This Pokemon is protected from some Ball and Bomb moves.",
|
||||
shortDesc: "This Pokemon is protected from ball and bomb moves.",
|
||||
onTryHit: function(pokemon, target, move) {
|
||||
if (move.isBallMove || move.isBombMove) {
|
||||
if (move.isBullet) {
|
||||
this.add('-immune', pokemon, '[msg]', '[from] Bulletproof');
|
||||
return null;
|
||||
}
|
||||
@@ -772,7 +776,6 @@ exports.BattleAbilities = {
|
||||
desc: "Prevents lowering of ally Grass-type Pokemon's stats.",
|
||||
shortDesc: "Prevents lowering of ally Grass-type Pokemon's stats.",
|
||||
onStart: function(pokemon) {
|
||||
this.add('-ability', pokemon, 'Flower Veil');
|
||||
pokemon.side.addSideCondition('flowerveil');
|
||||
},
|
||||
onSwitchOut: function(pokemon) {
|
||||
@@ -1812,10 +1815,10 @@ exports.BattleAbilities = {
|
||||
num: 20
|
||||
},
|
||||
"parentalbond": {
|
||||
desc: "Allows the Pokemon to hit twice with the same move in one turn. Second hit has 0.5x base power. Does not affect Status, multihit, or spread moves (even in singles).",
|
||||
desc: "Allows the Pokemon to hit twice with the same move in one turn. Second hit has 0.5x base power. Does not affect Status, multihit, or spread moves (in doubles).",
|
||||
shortDesc: "Hits twice in one turn. Second hit has 0.5x base power.",
|
||||
onModifyMove: function(move, pokemon) {
|
||||
if (move.category !== 'Status' && !move.multihit && move.target === "normal") {
|
||||
onModifyMove: function(move, pokemon, target) {
|
||||
if (move.category !== 'Status' && !move.multihit && (target.side.active.length < 2 || move.target in {any:1, normal:1, randomNormal:1})) {
|
||||
move.multihit = 2;
|
||||
pokemon.addVolatile('parentalbond');
|
||||
}
|
||||
@@ -2421,7 +2424,7 @@ exports.BattleAbilities = {
|
||||
},
|
||||
"sniper": {
|
||||
desc: "When this Pokemon lands a Critical Hit, the damage is increased to another 1.5x.",
|
||||
shortDesc: "If this Pokemon strikes with a critical hit, the damage is 2.25x instead of 1.5x.",
|
||||
shortDesc: "If this Pokemon strikes with a critical hit, the damage is increased by 50%",
|
||||
onModifyDamage: function(damage, source, target, move) {
|
||||
if (move.crit) {
|
||||
this.debug('Sniper boost');
|
||||
@@ -2720,25 +2723,16 @@ exports.BattleAbilities = {
|
||||
shortDesc: "Prevents allies from being put to Sleep.",
|
||||
id: "sweetveil",
|
||||
name: "Sweet Veil",
|
||||
onStart: function(pokemon) {
|
||||
this.add('-ability', pokemon, 'Sweet Veil');
|
||||
pokemon.side.addSideCondition('sweetveil');
|
||||
onAllySetStatus: function(status, target, source, effect) {
|
||||
if (status.id === 'slp') {
|
||||
this.debug('Sweet Veil interrupts sleep');
|
||||
return false;
|
||||
}
|
||||
},
|
||||
onSwitchOut: function(pokemon) {
|
||||
pokemon.side.removeSideCondition('sweetveil');
|
||||
},
|
||||
effect: {
|
||||
onSetStatus: function(status, target, source, effect) {
|
||||
if (status.id === 'slp') {
|
||||
this.debug('Sweet Veil interrupts sleep');
|
||||
return false;
|
||||
}
|
||||
},
|
||||
onTryHit: function(target, source, move) {
|
||||
if (move && move.id === 'yawn') {
|
||||
this.debug('Sweet Veil blocking yawn');
|
||||
return false;
|
||||
}
|
||||
onAllyTryHit: function(target, source, move) {
|
||||
if (move && move.id === 'yawn') {
|
||||
this.debug('Sweet Veil blocking yawn');
|
||||
return false;
|
||||
}
|
||||
},
|
||||
rating: 0,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
1457
data/learnsets-g6.js
1457
data/learnsets-g6.js
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -6946,7 +6946,7 @@ exports.BattleMovedex = {
|
||||
effect: {
|
||||
duration: 1,
|
||||
onStart: function(target) {
|
||||
this.add('-singleturn', target, "King's Shield");
|
||||
this.add('-singleturn', target, 'Protect');
|
||||
},
|
||||
onTryHitPriority: 3,
|
||||
onTryHit: function(target, source, move) {
|
||||
@@ -6955,7 +6955,7 @@ exports.BattleMovedex = {
|
||||
return;
|
||||
}
|
||||
if (move && (move.category === 'Status' || move.isNotProtectable || move.id === 'suckerpunch')) return;
|
||||
this.add('-activate', target, "King's Shield");
|
||||
this.add('-activate', target, 'Protect');
|
||||
var lockedmove = source.getVolatile('lockedmove');
|
||||
if (lockedmove) {
|
||||
// Outrage counter is reset
|
||||
@@ -7771,8 +7771,8 @@ exports.BattleMovedex = {
|
||||
priority: 0,
|
||||
stallingMove: true, // Note: stallingMove is not used anywhere.
|
||||
volatileStatus: 'matblock',
|
||||
onTryHit: function(target, pokemon) {
|
||||
if (pokemon.activeTurns > 1) {
|
||||
onTryHitSide: function(side, source) {
|
||||
if (source.activeTurns > 1) {
|
||||
this.add('-message', '(Mat Block only works your first turn out.)');
|
||||
return false;
|
||||
}
|
||||
@@ -7783,18 +7783,25 @@ exports.BattleMovedex = {
|
||||
this.add('-singleturn', target, 'Mat Block');
|
||||
},
|
||||
onTryHitPriority: 3,
|
||||
onTryHit: function(target, source, move) {
|
||||
onAllyTryHit: function(target, source, move) {
|
||||
if (move.breaksProtect) {
|
||||
target.removeVolatile('Mat Block');
|
||||
return;
|
||||
}
|
||||
if (move && (move.target === 'self' || move.category === 'Status')) return;
|
||||
this.add('-activate', target, 'Mat Block');
|
||||
this.add('-activate', target, 'Mat Block', move.name);
|
||||
var lockedmove = source.getVolatile('lockedmove');
|
||||
if (lockedmove) {
|
||||
// Outrage counter is reset
|
||||
if (source.volatiles['lockedmove'].duration === 2) {
|
||||
delete source.volatiles['lockedmove'];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
},
|
||||
secondary: false,
|
||||
target: "normal",
|
||||
target: "allySide",
|
||||
type: "Fighting"
|
||||
},
|
||||
"mefirst": {
|
||||
@@ -9985,7 +9992,7 @@ exports.BattleMovedex = {
|
||||
accuracy: true,
|
||||
basePower: 0,
|
||||
category: "Status",
|
||||
desc: "The user and its party members are protected from attacks with original priority greater than 0 made by other Pokemon, including allies, during this turn. This attack has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this attack fails or if the user's last used move is not Detect, Endure, Protect, Quick Guard, or Wide Guard. If X is 256 or more, this move has a 1/(2^32) chance of being successful. Fails if the user moves last this turn or if this move is already in effect for the user's side. Priority +3.",
|
||||
desc: "The user and its party members are protected from attacks with priority greater than 0 made by other Pokemon, including allies, during this turn. Fails if the user moves last this turn or if this move is already in effect for the user's side. Priority +3.",
|
||||
shortDesc: "Protects allies from priority attacks this turn.",
|
||||
id: "quickguard",
|
||||
name: "Quick Guard",
|
||||
@@ -9993,12 +10000,8 @@ exports.BattleMovedex = {
|
||||
priority: 3,
|
||||
isSnatchable: true,
|
||||
sideCondition: 'quickguard',
|
||||
stallingMove: true, // Note: stallingMove is not used anywhere.
|
||||
onTryHitSide: function(side, source) {
|
||||
return this.willAct() && this.runEvent('StallMove', source);
|
||||
},
|
||||
onHitSide: function(side, source) {
|
||||
source.addVolatile('stall');
|
||||
return this.willAct();
|
||||
},
|
||||
effect: {
|
||||
duration: 1,
|
||||
@@ -10007,9 +10010,9 @@ exports.BattleMovedex = {
|
||||
},
|
||||
onTryHitPriority: 4,
|
||||
onTryHit: function(target, source, effect) {
|
||||
// Quick Guard only blocks moves with a natural positive priority
|
||||
// (e.g. it doesn't block 0 priority moves boosted by Prankster)
|
||||
if (effect && (effect.id === 'Feint' || this.getMove(effect.id).priority <= 0)) {
|
||||
// Quick Guard blocks moves with positive priority, even those given increased priority by Prankster or Gale Wings.
|
||||
// (e.g. it blocks 0 priority moves boosted by Prankster or Gale Wings)
|
||||
if (effect && (effect.id === 'Feint' || effect.priority <= 0)) {
|
||||
return;
|
||||
}
|
||||
this.add('-activate', target, 'Quick Guard');
|
||||
@@ -12856,7 +12859,7 @@ exports.BattleMovedex = {
|
||||
this.debug('sub bypass: self hit');
|
||||
return;
|
||||
}
|
||||
if (move.notSubBlocked || source.ability === 'infiltrator' && this.gen >= 6) {
|
||||
if (move.notSubBlocked || (source.ability === 'infiltrator' || move.isSoundBased) && this.gen >= 6) {
|
||||
return;
|
||||
}
|
||||
if (move.category === 'Status') {
|
||||
@@ -13725,6 +13728,12 @@ exports.BattleMovedex = {
|
||||
name: "Toxic",
|
||||
pp: 10,
|
||||
priority: 0,
|
||||
onModifyMove: function(move, pokemon) {
|
||||
if (pokemon.hasType('Poison')) {
|
||||
move.accuracy = true;
|
||||
move.alwaysHit = true;
|
||||
}
|
||||
},
|
||||
status: 'tox',
|
||||
secondary: false,
|
||||
target: "normal",
|
||||
@@ -14540,7 +14549,7 @@ exports.BattleMovedex = {
|
||||
accuracy: true,
|
||||
basePower: 0,
|
||||
category: "Status",
|
||||
desc: "The user and its party members are protected from damaging attacks made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This attack has a 1/X chance of being successful, where X starts at 1 and doubles each time this move is successfully used. X resets to 1 if this attack fails or if the user's last used move is not Detect, Endure, Protect, Quick Guard, or Wide Guard. If X is 256 or more, this move has a 1/(2^32) chance of being successful. Fails if the user moves last this turn or if this move is already in effect for the user's side. Priority +3.",
|
||||
desc: "The user and its party members are protected from damaging attacks made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. Fails if the user moves last this turn or if this move is already in effect for the user's side. Priority +3.",
|
||||
shortDesc: "Protects allies from multi-target hits this turn.",
|
||||
id: "wideguard",
|
||||
name: "Wide Guard",
|
||||
@@ -14548,12 +14557,8 @@ exports.BattleMovedex = {
|
||||
priority: 3,
|
||||
isSnatchable: true,
|
||||
sideCondition: 'wideguard',
|
||||
stallingMove: true, // Note: stallingMove is not used anywhere.
|
||||
onTryHitSide: function(side, source) {
|
||||
return this.willAct() && this.runEvent('StallMove', source);
|
||||
},
|
||||
onHitSide: function(side, source) {
|
||||
source.addVolatile('stall');
|
||||
return this.willAct();
|
||||
},
|
||||
effect: {
|
||||
duration: 1,
|
||||
|
||||
@@ -806,6 +806,7 @@ necturna:{num:-2,species:"Necturna",types:["Grass","Ghost"],gender:"F",baseStats
|
||||
mollux:{num:-3,species:"Mollux",types:["Fire","Poison"],baseStats:{hp:95,atk:45,def:83,spa:131,spd:105,spe:76},abilities:{0:"Dry Skin",H:"Illuminate"},heightm:1.2,weightkg:41,color:"Pink",eggGroups:["Fairy","Field"]},
|
||||
aurumoth:{num:-4,species:"Aurumoth",types:["Bug","Psychic"],baseStats:{hp:110,atk:120,def:99,spa:117,spd:60,spe:94},abilities:{0:"Weak Armor",1:"No Guard",H:"Illusion"},heightm:2.1,weightkg:193,color:"Purple",eggGroups:["Bug"]},
|
||||
malaconda:{num:-5,species:"Malaconda",types:["Dark","Grass"],baseStats:{hp:115,atk:100,def:60,spa:40,spd:130,spe:55},abilities:{0:"Harvest",1:"Infiltrator"},heightm:5.5,weightkg:108.8,color:"",eggGroups:["Grass","Dragon"]},
|
||||
cawmodore:{num:-6,species:"Cawmodore",types:["Steel","Flying"],baseStats:{hp:50,atk:92,def:130,spa:65,spd:75,spe:118},abilities:{0:"Intimidate",1:"Volt Absorb"},heightm:1.7,weightkg:37.0,color:"",eggGroups:["Flying"]},
|
||||
syclant:{num:-51,species:"Syclant",types:["Ice","Bug"],baseStats:{hp:70,atk:116,def:70,spa:114,spd:64,spe:121},abilities:{0:"Compound Eyes",1:"Mountaineer"},heightm:1.7,weightkg:52,color:"",eggGroups:["Bug"]},
|
||||
revenankh:{num:-52,species:"Revenankh",types:["Ghost","Fighting"],baseStats:{hp:90,atk:105,def:90,spa:65,spd:110,spe:65},abilities:{0:"Shed Skin",1:"Air Lock"},heightm:1.8,weightkg:44,color:"",eggGroups:["Amorphous","Human-Like"]},
|
||||
pyroak:{num:-53,species:"Pyroak",types:["Fire","Grass"],baseStats:{hp:120,atk:70,def:105,spa:95,spd:90,spe:60},abilities:{0:"Rock Head",1:"Battle Armor"},heightm:2.1,weightkg:168,color:"",eggGroups:["Monster","Dragon"]},
|
||||
|
||||
Reference in New Issue
Block a user