mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-05-09 12:36:41 -05:00
Gen 2 now inherits data from Gen 3
This fixes issues with a lot of moves, including but not limited to Acid, Beat Up, Bone Rush, Crunch, Dig, Extreme Speed, Fake Out, Future Sight, High Jump Kick, Hypnosis and Petal Dance.
This commit is contained in:
parent
9201ffaa5e
commit
456883914b
|
|
@ -20,42 +20,6 @@ exports.BattleItems = {
|
|||
gen: 2,
|
||||
desc: "Restores 10 HP when the holder of this item is at 50% HP or less. One-time use."
|
||||
},
|
||||
blackbelt: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move && move.type === 'Fighting') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Fighting-type attacks have 1.1x power."
|
||||
},
|
||||
blackglasses: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move && move.type === 'Dark') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Dark-type attacks have 1.1x power."
|
||||
},
|
||||
charcoal: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move && move.type === 'Fire') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Fire-type attacks have 1.1x power."
|
||||
},
|
||||
dragonfang: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move && move.type === 'Dragon') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Dragon-type attacks have 1.1x power."
|
||||
},
|
||||
dragonscale: {
|
||||
id: "dragonscale",
|
||||
name: "Dragon Scale",
|
||||
|
|
@ -63,37 +27,6 @@ exports.BattleItems = {
|
|||
gen: 2,
|
||||
desc: "Evolves Seadra into Kingdra. Raises power of Dragon-type moves by 10%."
|
||||
},
|
||||
hardstone: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move && move.type === 'Rock') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Rock-type attacks have 1.1x power."
|
||||
},
|
||||
lightball: {
|
||||
inherit: true,
|
||||
onModifyAtk: function() { }
|
||||
},
|
||||
magnet: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move.type === 'Electric') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Electric-type attacks have 1.1x power."
|
||||
},
|
||||
metalcoat: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move.type === 'Steel') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Steel-type attacks have 1.1x power."
|
||||
},
|
||||
metalpowder: {
|
||||
inherit: true,
|
||||
onModifyDef: function(def, pokemon) {
|
||||
|
|
@ -106,95 +39,5 @@ exports.BattleItems = {
|
|||
return def * 1.5;
|
||||
}
|
||||
}
|
||||
},
|
||||
miracleseed: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move.type === 'Grass') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Grass-type attacks have 1.1x power."
|
||||
},
|
||||
mysticwater: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move.type === 'Water') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Water-type attacks have 1.1x power."
|
||||
},
|
||||
nevermeltice: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move.type === 'Ice') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Ice-type attacks have 1.1x power."
|
||||
},
|
||||
poisonbarb: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move.type === 'Poison') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Poison-type attacks have 1.1x power."
|
||||
},
|
||||
sharpbeak: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move && move.type === 'Flying') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Flying-type attacks have 1.1x power."
|
||||
},
|
||||
silkscarf: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move.type === 'Normal') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Normal-type attacks have 1.1x power."
|
||||
},
|
||||
silverpowder: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move.type === 'Bug') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Bug-type attacks have 1.1x power."
|
||||
},
|
||||
softsand: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move.type === 'Ground') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Ground-type attacks have 1.1x power."
|
||||
},
|
||||
spelltag: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move.type === 'Ghost') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Ghost-type attacks have 1.1x power."
|
||||
},
|
||||
twistedspoon: {
|
||||
inherit: true,
|
||||
onBasePower: function(basePower, user, target, move) {
|
||||
if (move.type === 'Psychic') {
|
||||
return basePower * 1.1;
|
||||
}
|
||||
},
|
||||
desc: "Holder's Psychic-type attacks have 1.1x power."
|
||||
}
|
||||
};
|
||||
|
|
@ -23,66 +23,6 @@ exports.BattleMovedex = {
|
|||
this.add('-setboost', target, 'atk', '6', '[from] move: Belly Drum');
|
||||
}
|
||||
},
|
||||
encore: {
|
||||
inherit: true,
|
||||
isBounceable: false,
|
||||
volatileStatus: 'encore',
|
||||
effect: {
|
||||
durationCallback: function() {
|
||||
return this.random(2,6);
|
||||
},
|
||||
onStart: function(target) {
|
||||
var noEncore = {encore:1, mimic:1, mirrormove:1, sketch:1, transform:1};
|
||||
var moveIndex = target.moves.indexOf(target.lastMove);
|
||||
if (!target.lastMove || noEncore[target.lastMove] || (target.moveset[moveIndex] && target.moveset[moveIndex].pp <= 0)) {
|
||||
// it failed
|
||||
this.add('-fail',target);
|
||||
delete target.volatiles['encore'];
|
||||
return;
|
||||
}
|
||||
this.effectData.move = target.lastMove;
|
||||
this.add('-start', target, 'Encore');
|
||||
if (!this.willMove(target)) {
|
||||
this.effectData.duration++;
|
||||
}
|
||||
},
|
||||
onOverrideDecision: function(pokemon) {
|
||||
return this.effectData.move;
|
||||
},
|
||||
onResidualOrder: 13,
|
||||
onResidual: function(target) {
|
||||
if (target.moves.indexOf(target.lastMove) >= 0 && target.moveset[target.moves.indexOf(target.lastMove)].pp <= 0) {
|
||||
// early termination if you run out of PP
|
||||
delete target.volatiles.encore;
|
||||
this.add('-end', target, 'Encore');
|
||||
}
|
||||
},
|
||||
onEnd: function(target) {
|
||||
this.add('-end', target, 'Encore');
|
||||
},
|
||||
onModifyPokemon: function(pokemon) {
|
||||
if (!this.effectData.move || !pokemon.hasMove(this.effectData.move)) {
|
||||
return;
|
||||
}
|
||||
for (var i=0; i<pokemon.moveset.length; i++) {
|
||||
if (pokemon.moveset[i].id !== this.effectData.move) {
|
||||
pokemon.moveset[i].disabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
explosion: {
|
||||
inherit: true,
|
||||
basePower: 500
|
||||
},
|
||||
growth: {
|
||||
inherit: true,
|
||||
onModifyMove: function() { },
|
||||
boosts: {
|
||||
spa: 1
|
||||
}
|
||||
},
|
||||
leechseed: {
|
||||
inherit: true,
|
||||
onHit: function (target, source, move) {
|
||||
|
|
@ -192,10 +132,6 @@ exports.BattleMovedex = {
|
|||
inherit: true,
|
||||
priority: -1
|
||||
},
|
||||
selfdestruct: {
|
||||
inherit: true,
|
||||
basePower: 400
|
||||
},
|
||||
sleeptalk: {
|
||||
inherit: true,
|
||||
onHit: function(pokemon) {
|
||||
|
|
@ -237,17 +173,6 @@ exports.BattleMovedex = {
|
|||
}
|
||||
}
|
||||
},
|
||||
spite: {
|
||||
inherit: true,
|
||||
onHit: function(target) {
|
||||
var reduction = this.random(2, 6);
|
||||
if (target.deductPP(target.lastMove, reduction)) {
|
||||
this.add("-activate", target, 'move: Spite', target.lastMove, reduction);
|
||||
return;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
},
|
||||
substitute: {
|
||||
inherit: true,
|
||||
effect: {
|
||||
|
|
@ -303,10 +228,6 @@ exports.BattleMovedex = {
|
|||
}
|
||||
}
|
||||
},
|
||||
waterfall: {
|
||||
inherit: true,
|
||||
secondary: false
|
||||
},
|
||||
whirlwind: {
|
||||
inherit: true,
|
||||
priority: -1
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
* Gen 2 scripts.
|
||||
*/
|
||||
exports.BattleScripts = {
|
||||
inherit: 'gen5',
|
||||
inherit: 'gen3',
|
||||
gen: 2,
|
||||
getCategory: function(move) {
|
||||
move = this.getMove(move);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user