|
"use strict"; |
|
var __defProp = Object.defineProperty; |
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor; |
|
var __getOwnPropNames = Object.getOwnPropertyNames; |
|
var __hasOwnProp = Object.prototype.hasOwnProperty; |
|
var __export = (target, all) => { |
|
for (var name in all) |
|
__defProp(target, name, { get: all[name], enumerable: true }); |
|
}; |
|
var __copyProps = (to, from, except, desc) => { |
|
if (from && typeof from === "object" || typeof from === "function") { |
|
for (let key of __getOwnPropNames(from)) |
|
if (!__hasOwnProp.call(to, key) && key !== except) |
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); |
|
} |
|
return to; |
|
}; |
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); |
|
var items_exports = {}; |
|
__export(items_exports, { |
|
Items: () => Items |
|
}); |
|
module.exports = __toCommonJS(items_exports); |
|
const Items = { |
|
abilityshield: { |
|
name: "Ability Shield", |
|
spritenum: 746, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
ignoreKlutz: true, |
|
|
|
|
|
onSetAbility(ability, target, source, effect) { |
|
if (effect && effect.effectType === "Ability" && effect.name !== "Trace") { |
|
this.add("-ability", source, effect); |
|
} |
|
this.add("-block", target, "item: Ability Shield"); |
|
return null; |
|
}, |
|
|
|
num: 1881, |
|
gen: 9 |
|
}, |
|
abomasite: { |
|
name: "Abomasite", |
|
spritenum: 575, |
|
megaStone: "Abomasnow-Mega", |
|
megaEvolves: "Abomasnow", |
|
itemUser: ["Abomasnow"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 674, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
absolite: { |
|
name: "Absolite", |
|
spritenum: 576, |
|
megaStone: "Absol-Mega", |
|
megaEvolves: "Absol", |
|
itemUser: ["Absol"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 677, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
absorbbulb: { |
|
name: "Absorb Bulb", |
|
spritenum: 2, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onDamagingHit(damage, target, source, move) { |
|
if (move.type === "Water") { |
|
target.useItem(); |
|
} |
|
}, |
|
boosts: { |
|
spa: 1 |
|
}, |
|
num: 545, |
|
gen: 5 |
|
}, |
|
adamantcrystal: { |
|
name: "Adamant Crystal", |
|
spritenum: 741, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (user.baseSpecies.num === 483 && (move.type === "Steel" || move.type === "Dragon")) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source?.baseSpecies.num === 483 || pokemon.baseSpecies.num === 483) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Dialga-Origin", |
|
itemUser: ["Dialga-Origin"], |
|
num: 1777, |
|
gen: 8 |
|
}, |
|
adamantorb: { |
|
name: "Adamant Orb", |
|
spritenum: 4, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (user.baseSpecies.num === 483 && (move.type === "Steel" || move.type === "Dragon")) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
itemUser: ["Dialga"], |
|
num: 135, |
|
gen: 4 |
|
}, |
|
adrenalineorb: { |
|
name: "Adrenaline Orb", |
|
spritenum: 660, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onAfterBoost(boost, target, source, effect) { |
|
if (target.boosts["spe"] === 6 || boost.atk === 0) { |
|
return; |
|
} |
|
if (effect.name === "Intimidate") { |
|
target.useItem(); |
|
} |
|
}, |
|
boosts: { |
|
spe: 1 |
|
}, |
|
num: 846, |
|
gen: 7 |
|
}, |
|
aerodactylite: { |
|
name: "Aerodactylite", |
|
spritenum: 577, |
|
megaStone: "Aerodactyl-Mega", |
|
megaEvolves: "Aerodactyl", |
|
itemUser: ["Aerodactyl"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 672, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
aggronite: { |
|
name: "Aggronite", |
|
spritenum: 578, |
|
megaStone: "Aggron-Mega", |
|
megaEvolves: "Aggron", |
|
itemUser: ["Aggron"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 667, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
aguavberry: { |
|
name: "Aguav Berry", |
|
spritenum: 5, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Dragon" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onTryEatItem(item, pokemon) { |
|
if (!this.runEvent("TryHeal", pokemon, null, this.effect, pokemon.baseMaxhp / 3)) |
|
return false; |
|
}, |
|
onEat(pokemon) { |
|
this.heal(pokemon.baseMaxhp / 3); |
|
if (pokemon.getNature().minus === "spd") { |
|
pokemon.addVolatile("confusion"); |
|
} |
|
}, |
|
num: 162, |
|
gen: 3 |
|
}, |
|
airballoon: { |
|
name: "Air Balloon", |
|
spritenum: 6, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onStart(target) { |
|
if (!target.ignoringItem() && !this.field.getPseudoWeather("gravity")) { |
|
this.add("-item", target, "Air Balloon"); |
|
} |
|
}, |
|
|
|
onDamagingHit(damage, target, source, move) { |
|
this.add("-enditem", target, "Air Balloon"); |
|
target.item = ""; |
|
this.clearEffectState(target.itemState); |
|
this.runEvent("AfterUseItem", target, null, null, this.dex.items.get("airballoon")); |
|
}, |
|
onAfterSubDamage(damage, target, source, effect) { |
|
this.debug("effect: " + effect.id); |
|
if (effect.effectType === "Move") { |
|
this.add("-enditem", target, "Air Balloon"); |
|
target.item = ""; |
|
this.clearEffectState(target.itemState); |
|
this.runEvent("AfterUseItem", target, null, null, this.dex.items.get("airballoon")); |
|
} |
|
}, |
|
num: 541, |
|
gen: 5 |
|
}, |
|
alakazite: { |
|
name: "Alakazite", |
|
spritenum: 579, |
|
megaStone: "Alakazam-Mega", |
|
megaEvolves: "Alakazam", |
|
itemUser: ["Alakazam"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 679, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
aloraichiumz: { |
|
name: "Aloraichium Z", |
|
spritenum: 655, |
|
onTakeItem: false, |
|
zMove: "Stoked Sparksurfer", |
|
zMoveFrom: "Thunderbolt", |
|
itemUser: ["Raichu-Alola"], |
|
num: 803, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
altarianite: { |
|
name: "Altarianite", |
|
spritenum: 615, |
|
megaStone: "Altaria-Mega", |
|
megaEvolves: "Altaria", |
|
itemUser: ["Altaria"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 755, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
ampharosite: { |
|
name: "Ampharosite", |
|
spritenum: 580, |
|
megaStone: "Ampharos-Mega", |
|
megaEvolves: "Ampharos", |
|
itemUser: ["Ampharos"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 658, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
apicotberry: { |
|
name: "Apicot Berry", |
|
spritenum: 10, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Ground" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
this.boost({ spd: 1 }); |
|
}, |
|
num: 205, |
|
gen: 3 |
|
}, |
|
armorfossil: { |
|
name: "Armor Fossil", |
|
spritenum: 12, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 104, |
|
gen: 4, |
|
isNonstandard: "Past" |
|
}, |
|
aspearberry: { |
|
name: "Aspear Berry", |
|
spritenum: 13, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Ice" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status === "frz") { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
if (pokemon.status === "frz") { |
|
pokemon.cureStatus(); |
|
} |
|
}, |
|
num: 153, |
|
gen: 3 |
|
}, |
|
assaultvest: { |
|
name: "Assault Vest", |
|
spritenum: 581, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
onModifySpDPriority: 1, |
|
onModifySpD(spd) { |
|
return this.chainModify(1.5); |
|
}, |
|
onDisableMove(pokemon) { |
|
for (const moveSlot of pokemon.moveSlots) { |
|
const move = this.dex.moves.get(moveSlot.id); |
|
if (move.category === "Status" && move.id !== "mefirst") { |
|
pokemon.disableMove(moveSlot.id); |
|
} |
|
} |
|
}, |
|
num: 640, |
|
gen: 6 |
|
}, |
|
audinite: { |
|
name: "Audinite", |
|
spritenum: 617, |
|
megaStone: "Audino-Mega", |
|
megaEvolves: "Audino", |
|
itemUser: ["Audino"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 757, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
auspiciousarmor: { |
|
name: "Auspicious Armor", |
|
spritenum: 753, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 2344, |
|
gen: 9 |
|
}, |
|
babiriberry: { |
|
name: "Babiri Berry", |
|
spritenum: 17, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Steel" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Steel" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 199, |
|
gen: 4 |
|
}, |
|
banettite: { |
|
name: "Banettite", |
|
spritenum: 582, |
|
megaStone: "Banette-Mega", |
|
megaEvolves: "Banette", |
|
itemUser: ["Banette"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 668, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
beastball: { |
|
name: "Beast Ball", |
|
spritenum: 661, |
|
num: 851, |
|
gen: 7, |
|
isPokeball: true |
|
}, |
|
beedrillite: { |
|
name: "Beedrillite", |
|
spritenum: 628, |
|
megaStone: "Beedrill-Mega", |
|
megaEvolves: "Beedrill", |
|
itemUser: ["Beedrill"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 770, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
belueberry: { |
|
name: "Belue Berry", |
|
spritenum: 21, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Electric" |
|
}, |
|
onEat: false, |
|
num: 183, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
berryjuice: { |
|
name: "Berry Juice", |
|
spritenum: 22, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 2) { |
|
if (this.runEvent("TryHeal", pokemon, null, this.effect, 20) && pokemon.useItem()) { |
|
this.heal(20); |
|
} |
|
} |
|
}, |
|
num: 43, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
berrysweet: { |
|
name: "Berry Sweet", |
|
spritenum: 706, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
num: 1111, |
|
gen: 8 |
|
}, |
|
bignugget: { |
|
name: "Big Nugget", |
|
spritenum: 27, |
|
fling: { |
|
basePower: 130 |
|
}, |
|
num: 581, |
|
gen: 5 |
|
}, |
|
bigroot: { |
|
name: "Big Root", |
|
spritenum: 29, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onTryHealPriority: 1, |
|
onTryHeal(damage, target, source, effect) { |
|
const heals = ["drain", "leechseed", "ingrain", "aquaring", "strengthsap"]; |
|
if (heals.includes(effect.id)) { |
|
return this.chainModify([5324, 4096]); |
|
} |
|
}, |
|
num: 296, |
|
gen: 4 |
|
}, |
|
bindingband: { |
|
name: "Binding Band", |
|
spritenum: 31, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
|
|
num: 544, |
|
gen: 5 |
|
}, |
|
blackbelt: { |
|
name: "Black Belt", |
|
spritenum: 32, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Fighting") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 241, |
|
gen: 2 |
|
}, |
|
blackglasses: { |
|
name: "Black Glasses", |
|
spritenum: 35, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Dark") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 240, |
|
gen: 2 |
|
}, |
|
blacksludge: { |
|
name: "Black Sludge", |
|
spritenum: 34, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onResidualOrder: 5, |
|
onResidualSubOrder: 4, |
|
onResidual(pokemon) { |
|
if (pokemon.hasType("Poison")) { |
|
this.heal(pokemon.baseMaxhp / 16); |
|
} else { |
|
this.damage(pokemon.baseMaxhp / 8); |
|
} |
|
}, |
|
num: 281, |
|
gen: 4 |
|
}, |
|
blastoisinite: { |
|
name: "Blastoisinite", |
|
spritenum: 583, |
|
megaStone: "Blastoise-Mega", |
|
megaEvolves: "Blastoise", |
|
itemUser: ["Blastoise"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 661, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
blazikenite: { |
|
name: "Blazikenite", |
|
spritenum: 584, |
|
megaStone: "Blaziken-Mega", |
|
megaEvolves: "Blaziken", |
|
itemUser: ["Blaziken"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 664, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
blueorb: { |
|
name: "Blue Orb", |
|
spritenum: 41, |
|
onSwitchInPriority: -1, |
|
onSwitchIn(pokemon) { |
|
if (pokemon.isActive && pokemon.baseSpecies.name === "Kyogre" && !pokemon.transformed) { |
|
pokemon.formeChange("Kyogre-Primal", this.effect, true); |
|
} |
|
}, |
|
onTakeItem(item, source) { |
|
if (source.baseSpecies.baseSpecies === "Kyogre") |
|
return false; |
|
return true; |
|
}, |
|
itemUser: ["Kyogre"], |
|
isPrimalOrb: true, |
|
num: 535, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
blukberry: { |
|
name: "Bluk Berry", |
|
spritenum: 44, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Fire" |
|
}, |
|
onEat: false, |
|
num: 165, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
blunderpolicy: { |
|
name: "Blunder Policy", |
|
spritenum: 716, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
|
|
num: 1121, |
|
gen: 8 |
|
}, |
|
boosterenergy: { |
|
name: "Booster Energy", |
|
spritenum: 745, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onSwitchInPriority: -2, |
|
onStart(pokemon) { |
|
this.effectState.started = true; |
|
this.effect.onUpdate.call(this, pokemon); |
|
}, |
|
onUpdate(pokemon) { |
|
if (!this.effectState.started || pokemon.transformed) |
|
return; |
|
if (pokemon.hasAbility("protosynthesis") && !this.field.isWeather("sunnyday") && pokemon.useItem()) { |
|
pokemon.addVolatile("protosynthesis"); |
|
} |
|
if (pokemon.hasAbility("quarkdrive") && !this.field.isTerrain("electricterrain") && pokemon.useItem()) { |
|
pokemon.addVolatile("quarkdrive"); |
|
} |
|
}, |
|
onTakeItem(item, source) { |
|
if (source.baseSpecies.tags.includes("Paradox")) |
|
return false; |
|
return true; |
|
}, |
|
num: 1880, |
|
gen: 9 |
|
}, |
|
bottlecap: { |
|
name: "Bottle Cap", |
|
spritenum: 696, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 795, |
|
gen: 7 |
|
}, |
|
brightpowder: { |
|
name: "Bright Powder", |
|
spritenum: 51, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onModifyAccuracyPriority: -2, |
|
onModifyAccuracy(accuracy) { |
|
if (typeof accuracy !== "number") |
|
return; |
|
this.debug("brightpowder - decreasing accuracy"); |
|
return this.chainModify([3686, 4096]); |
|
}, |
|
num: 213, |
|
gen: 2 |
|
}, |
|
buggem: { |
|
name: "Bug Gem", |
|
spritenum: 53, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Bug" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 558, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
bugmemory: { |
|
name: "Bug Memory", |
|
spritenum: 673, |
|
onMemory: "Bug", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Bug", |
|
itemUser: ["Silvally-Bug"], |
|
num: 909, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
buginiumz: { |
|
name: "Buginium Z", |
|
spritenum: 642, |
|
onPlate: "Bug", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Bug", |
|
forcedForme: "Arceus-Bug", |
|
num: 787, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
burndrive: { |
|
name: "Burn Drive", |
|
spritenum: 54, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 649 || pokemon.baseSpecies.num === 649) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
onDrive: "Fire", |
|
forcedForme: "Genesect-Burn", |
|
itemUser: ["Genesect-Burn"], |
|
num: 118, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
cameruptite: { |
|
name: "Cameruptite", |
|
spritenum: 625, |
|
megaStone: "Camerupt-Mega", |
|
megaEvolves: "Camerupt", |
|
itemUser: ["Camerupt"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 767, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
cellbattery: { |
|
name: "Cell Battery", |
|
spritenum: 60, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onDamagingHit(damage, target, source, move) { |
|
if (move.type === "Electric") { |
|
target.useItem(); |
|
} |
|
}, |
|
boosts: { |
|
atk: 1 |
|
}, |
|
num: 546, |
|
gen: 5 |
|
}, |
|
charcoal: { |
|
name: "Charcoal", |
|
spritenum: 61, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Fire") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 249, |
|
gen: 2 |
|
}, |
|
charizarditex: { |
|
name: "Charizardite X", |
|
spritenum: 585, |
|
megaStone: "Charizard-Mega-X", |
|
megaEvolves: "Charizard", |
|
itemUser: ["Charizard"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 660, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
charizarditey: { |
|
name: "Charizardite Y", |
|
spritenum: 586, |
|
megaStone: "Charizard-Mega-Y", |
|
megaEvolves: "Charizard", |
|
itemUser: ["Charizard"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 678, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
chartiberry: { |
|
name: "Charti Berry", |
|
spritenum: 62, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Rock" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Rock" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 195, |
|
gen: 4 |
|
}, |
|
cheriberry: { |
|
name: "Cheri Berry", |
|
spritenum: 63, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Fire" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status === "par") { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
if (pokemon.status === "par") { |
|
pokemon.cureStatus(); |
|
} |
|
}, |
|
num: 149, |
|
gen: 3 |
|
}, |
|
cherishball: { |
|
name: "Cherish Ball", |
|
spritenum: 64, |
|
num: 16, |
|
gen: 4, |
|
isPokeball: true, |
|
isNonstandard: "Unobtainable" |
|
}, |
|
chestoberry: { |
|
name: "Chesto Berry", |
|
spritenum: 65, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Water" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status === "slp") { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
if (pokemon.status === "slp") { |
|
pokemon.cureStatus(); |
|
} |
|
}, |
|
num: 150, |
|
gen: 3 |
|
}, |
|
chilanberry: { |
|
name: "Chilan Berry", |
|
spritenum: 66, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Normal" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Normal" && (!target.volatiles["substitute"] || move.flags["bypasssub"] || move.infiltrates && this.gen >= 6)) { |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 200, |
|
gen: 4 |
|
}, |
|
chilldrive: { |
|
name: "Chill Drive", |
|
spritenum: 67, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 649 || pokemon.baseSpecies.num === 649) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
onDrive: "Ice", |
|
forcedForme: "Genesect-Chill", |
|
itemUser: ["Genesect-Chill"], |
|
num: 119, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
chippedpot: { |
|
name: "Chipped Pot", |
|
spritenum: 720, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 1254, |
|
gen: 8 |
|
}, |
|
choiceband: { |
|
name: "Choice Band", |
|
spritenum: 68, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onStart(pokemon) { |
|
if (pokemon.volatiles["choicelock"]) { |
|
this.debug("removing choicelock"); |
|
} |
|
pokemon.removeVolatile("choicelock"); |
|
}, |
|
onModifyMove(move, pokemon) { |
|
pokemon.addVolatile("choicelock"); |
|
}, |
|
onModifyAtkPriority: 1, |
|
onModifyAtk(atk, pokemon) { |
|
if (pokemon.volatiles["dynamax"]) |
|
return; |
|
return this.chainModify(1.5); |
|
}, |
|
isChoice: true, |
|
num: 220, |
|
gen: 3 |
|
}, |
|
choicescarf: { |
|
name: "Choice Scarf", |
|
spritenum: 69, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onStart(pokemon) { |
|
if (pokemon.volatiles["choicelock"]) { |
|
this.debug("removing choicelock"); |
|
} |
|
pokemon.removeVolatile("choicelock"); |
|
}, |
|
onModifyMove(move, pokemon) { |
|
pokemon.addVolatile("choicelock"); |
|
}, |
|
onModifySpe(spe, pokemon) { |
|
if (pokemon.volatiles["dynamax"]) |
|
return; |
|
return this.chainModify(1.5); |
|
}, |
|
isChoice: true, |
|
num: 287, |
|
gen: 4 |
|
}, |
|
choicespecs: { |
|
name: "Choice Specs", |
|
spritenum: 70, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onStart(pokemon) { |
|
if (pokemon.volatiles["choicelock"]) { |
|
this.debug("removing choicelock"); |
|
} |
|
pokemon.removeVolatile("choicelock"); |
|
}, |
|
onModifyMove(move, pokemon) { |
|
pokemon.addVolatile("choicelock"); |
|
}, |
|
onModifySpAPriority: 1, |
|
onModifySpA(spa, pokemon) { |
|
if (pokemon.volatiles["dynamax"]) |
|
return; |
|
return this.chainModify(1.5); |
|
}, |
|
isChoice: true, |
|
num: 297, |
|
gen: 4 |
|
}, |
|
chopleberry: { |
|
name: "Chople Berry", |
|
spritenum: 71, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Fighting" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Fighting" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 189, |
|
gen: 4 |
|
}, |
|
clawfossil: { |
|
name: "Claw Fossil", |
|
spritenum: 72, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 100, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
clearamulet: { |
|
name: "Clear Amulet", |
|
spritenum: 747, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onTryBoostPriority: 1, |
|
onTryBoost(boost, target, source, effect) { |
|
if (source && target === source) |
|
return; |
|
let showMsg = false; |
|
let i; |
|
for (i in boost) { |
|
if (boost[i] < 0) { |
|
delete boost[i]; |
|
showMsg = true; |
|
} |
|
} |
|
if (showMsg && !effect.secondaries && effect.id !== "octolock") { |
|
this.add("-fail", target, "unboost", "[from] item: Clear Amulet", `[of] ${target}`); |
|
} |
|
}, |
|
num: 1882, |
|
gen: 9 |
|
}, |
|
cloversweet: { |
|
name: "Clover Sweet", |
|
spritenum: 707, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
num: 1112, |
|
gen: 8 |
|
}, |
|
cobaberry: { |
|
name: "Coba Berry", |
|
spritenum: 76, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Flying" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Flying" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 192, |
|
gen: 4 |
|
}, |
|
colburberry: { |
|
name: "Colbur Berry", |
|
spritenum: 78, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Dark" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Dark" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 198, |
|
gen: 4 |
|
}, |
|
cornerstonemask: { |
|
name: "Cornerstone Mask", |
|
spritenum: 758, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (user.baseSpecies.name.startsWith("Ogerpon-Cornerstone")) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, source) { |
|
if (source.baseSpecies.baseSpecies === "Ogerpon") |
|
return false; |
|
return true; |
|
}, |
|
forcedForme: "Ogerpon-Cornerstone", |
|
itemUser: ["Ogerpon-Cornerstone"], |
|
num: 2406, |
|
gen: 9 |
|
}, |
|
cornnberry: { |
|
name: "Cornn Berry", |
|
spritenum: 81, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Bug" |
|
}, |
|
onEat: false, |
|
num: 175, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
coverfossil: { |
|
name: "Cover Fossil", |
|
spritenum: 85, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 572, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
covertcloak: { |
|
name: "Covert Cloak", |
|
spritenum: 750, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onModifySecondaries(secondaries) { |
|
this.debug("Covert Cloak prevent secondary"); |
|
return secondaries.filter((effect) => !!(effect.self || effect.dustproof)); |
|
}, |
|
num: 1885, |
|
gen: 9 |
|
}, |
|
crackedpot: { |
|
name: "Cracked Pot", |
|
spritenum: 719, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 1253, |
|
gen: 8 |
|
}, |
|
custapberry: { |
|
name: "Custap Berry", |
|
spritenum: 86, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Ghost" |
|
}, |
|
onFractionalPriorityPriority: -2, |
|
onFractionalPriority(priority, pokemon) { |
|
if (priority <= 0 && (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony)) { |
|
if (pokemon.eatItem()) { |
|
this.add("-activate", pokemon, "item: Custap Berry", "[consumed]"); |
|
return 0.1; |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 210, |
|
gen: 4 |
|
}, |
|
damprock: { |
|
name: "Damp Rock", |
|
spritenum: 88, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
num: 285, |
|
gen: 4 |
|
}, |
|
darkgem: { |
|
name: "Dark Gem", |
|
spritenum: 89, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Dark" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 562, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
darkmemory: { |
|
name: "Dark Memory", |
|
spritenum: 683, |
|
onMemory: "Dark", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Dark", |
|
itemUser: ["Silvally-Dark"], |
|
num: 919, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
darkiniumz: { |
|
name: "Darkinium Z", |
|
spritenum: 646, |
|
onPlate: "Dark", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Dark", |
|
forcedForme: "Arceus-Dark", |
|
num: 791, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
dawnstone: { |
|
name: "Dawn Stone", |
|
spritenum: 92, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 109, |
|
gen: 4 |
|
}, |
|
decidiumz: { |
|
name: "Decidium Z", |
|
spritenum: 650, |
|
onTakeItem: false, |
|
zMove: "Sinister Arrow Raid", |
|
zMoveFrom: "Spirit Shackle", |
|
itemUser: ["Decidueye"], |
|
num: 798, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
deepseascale: { |
|
name: "Deep Sea Scale", |
|
spritenum: 93, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onModifySpDPriority: 2, |
|
onModifySpD(spd, pokemon) { |
|
if (pokemon.baseSpecies.name === "Clamperl") { |
|
return this.chainModify(2); |
|
} |
|
}, |
|
itemUser: ["Clamperl"], |
|
num: 227, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
deepseatooth: { |
|
name: "Deep Sea Tooth", |
|
spritenum: 94, |
|
fling: { |
|
basePower: 90 |
|
}, |
|
onModifySpAPriority: 1, |
|
onModifySpA(spa, pokemon) { |
|
if (pokemon.baseSpecies.name === "Clamperl") { |
|
return this.chainModify(2); |
|
} |
|
}, |
|
itemUser: ["Clamperl"], |
|
num: 226, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
destinyknot: { |
|
name: "Destiny Knot", |
|
spritenum: 95, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onAttractPriority: -100, |
|
onAttract(target, source) { |
|
this.debug(`attract intercepted: ${target} from ${source}`); |
|
if (!source || source === target) |
|
return; |
|
if (!source.volatiles["attract"]) |
|
source.addVolatile("attract", target); |
|
}, |
|
num: 280, |
|
gen: 4 |
|
}, |
|
diancite: { |
|
name: "Diancite", |
|
spritenum: 624, |
|
megaStone: "Diancie-Mega", |
|
megaEvolves: "Diancie", |
|
itemUser: ["Diancie"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 764, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
diveball: { |
|
name: "Dive Ball", |
|
spritenum: 101, |
|
num: 7, |
|
gen: 3, |
|
isPokeball: true |
|
}, |
|
domefossil: { |
|
name: "Dome Fossil", |
|
spritenum: 102, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 102, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
dousedrive: { |
|
name: "Douse Drive", |
|
spritenum: 103, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 649 || pokemon.baseSpecies.num === 649) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
onDrive: "Water", |
|
forcedForme: "Genesect-Douse", |
|
itemUser: ["Genesect-Douse"], |
|
num: 116, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
dracoplate: { |
|
name: "Draco Plate", |
|
spritenum: 105, |
|
onPlate: "Dragon", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Dragon") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Dragon", |
|
num: 311, |
|
gen: 4 |
|
}, |
|
dragonfang: { |
|
name: "Dragon Fang", |
|
spritenum: 106, |
|
fling: { |
|
basePower: 70 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Dragon") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 250, |
|
gen: 2 |
|
}, |
|
dragongem: { |
|
name: "Dragon Gem", |
|
spritenum: 107, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Dragon" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 561, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
dragonmemory: { |
|
name: "Dragon Memory", |
|
spritenum: 682, |
|
onMemory: "Dragon", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Dragon", |
|
itemUser: ["Silvally-Dragon"], |
|
num: 918, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
dragonscale: { |
|
name: "Dragon Scale", |
|
spritenum: 108, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 235, |
|
gen: 2 |
|
}, |
|
dragoniumz: { |
|
name: "Dragonium Z", |
|
spritenum: 645, |
|
onPlate: "Dragon", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Dragon", |
|
forcedForme: "Arceus-Dragon", |
|
num: 790, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
dreadplate: { |
|
name: "Dread Plate", |
|
spritenum: 110, |
|
onPlate: "Dark", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Dark") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Dark", |
|
num: 312, |
|
gen: 4 |
|
}, |
|
dreamball: { |
|
name: "Dream Ball", |
|
spritenum: 111, |
|
num: 576, |
|
gen: 5, |
|
isPokeball: true |
|
}, |
|
dubiousdisc: { |
|
name: "Dubious Disc", |
|
spritenum: 113, |
|
fling: { |
|
basePower: 50 |
|
}, |
|
num: 324, |
|
gen: 4 |
|
}, |
|
durinberry: { |
|
name: "Durin Berry", |
|
spritenum: 114, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Water" |
|
}, |
|
onEat: false, |
|
num: 182, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
duskball: { |
|
name: "Dusk Ball", |
|
spritenum: 115, |
|
num: 13, |
|
gen: 4, |
|
isPokeball: true |
|
}, |
|
duskstone: { |
|
name: "Dusk Stone", |
|
spritenum: 116, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 108, |
|
gen: 4 |
|
}, |
|
earthplate: { |
|
name: "Earth Plate", |
|
spritenum: 117, |
|
onPlate: "Ground", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Ground") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Ground", |
|
num: 305, |
|
gen: 4 |
|
}, |
|
eeviumz: { |
|
name: "Eevium Z", |
|
spritenum: 657, |
|
onTakeItem: false, |
|
zMove: "Extreme Evoboost", |
|
zMoveFrom: "Last Resort", |
|
itemUser: ["Eevee"], |
|
num: 805, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
ejectbutton: { |
|
name: "Eject Button", |
|
spritenum: 118, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onAfterMoveSecondaryPriority: 2, |
|
onAfterMoveSecondary(target, source, move) { |
|
if (source && source !== target && target.hp && move && move.category !== "Status" && !move.flags["futuremove"]) { |
|
if (!this.canSwitch(target.side) || target.forceSwitchFlag || target.beingCalledBack || target.isSkyDropped()) |
|
return; |
|
if (target.volatiles["commanding"] || target.volatiles["commanded"]) |
|
return; |
|
for (const pokemon of this.getAllActive()) { |
|
if (pokemon.switchFlag === true) |
|
return; |
|
} |
|
target.switchFlag = true; |
|
if (target.useItem()) { |
|
source.switchFlag = false; |
|
} else { |
|
target.switchFlag = false; |
|
} |
|
} |
|
}, |
|
num: 547, |
|
gen: 5 |
|
}, |
|
ejectpack: { |
|
name: "Eject Pack", |
|
spritenum: 714, |
|
fling: { |
|
basePower: 50 |
|
}, |
|
onAfterBoost(boost, target, source, effect) { |
|
if (this.activeMove?.id === "partingshot") |
|
return; |
|
let eject = false; |
|
let i; |
|
for (i in boost) { |
|
if (boost[i] < 0) { |
|
eject = true; |
|
} |
|
} |
|
if (eject) { |
|
if (target.hp) { |
|
if (!this.canSwitch(target.side)) |
|
return; |
|
if (target.volatiles["commanding"] || target.volatiles["commanded"]) |
|
return; |
|
for (const pokemon of this.getAllActive()) { |
|
if (pokemon.switchFlag === true) |
|
return; |
|
} |
|
if (target.useItem()) |
|
target.switchFlag = true; |
|
} |
|
} |
|
}, |
|
num: 1119, |
|
gen: 8 |
|
}, |
|
electirizer: { |
|
name: "Electirizer", |
|
spritenum: 119, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 322, |
|
gen: 4 |
|
}, |
|
electricgem: { |
|
name: "Electric Gem", |
|
spritenum: 120, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status" || move.flags["pledgecombo"]) |
|
return; |
|
if (move.type === "Electric" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 550, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
electricmemory: { |
|
name: "Electric Memory", |
|
spritenum: 679, |
|
onMemory: "Electric", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Electric", |
|
itemUser: ["Silvally-Electric"], |
|
num: 915, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
electricseed: { |
|
name: "Electric Seed", |
|
spritenum: 664, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onSwitchInPriority: -1, |
|
onStart(pokemon) { |
|
if (!pokemon.ignoringItem() && this.field.isTerrain("electricterrain")) { |
|
pokemon.useItem(); |
|
} |
|
}, |
|
onTerrainChange(pokemon) { |
|
if (this.field.isTerrain("electricterrain")) { |
|
pokemon.useItem(); |
|
} |
|
}, |
|
boosts: { |
|
def: 1 |
|
}, |
|
num: 881, |
|
gen: 7 |
|
}, |
|
electriumz: { |
|
name: "Electrium Z", |
|
spritenum: 634, |
|
onPlate: "Electric", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Electric", |
|
forcedForme: "Arceus-Electric", |
|
num: 779, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
enigmaberry: { |
|
name: "Enigma Berry", |
|
spritenum: 124, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Bug" |
|
}, |
|
onHit(target, source, move) { |
|
if (move && target.getMoveHitData(move).typeMod > 0) { |
|
if (target.eatItem()) { |
|
this.heal(target.baseMaxhp / 4); |
|
} |
|
} |
|
}, |
|
onTryEatItem(item, pokemon) { |
|
if (!this.runEvent("TryHeal", pokemon, null, this.effect, pokemon.baseMaxhp / 4)) |
|
return false; |
|
}, |
|
onEat() { |
|
}, |
|
num: 208, |
|
gen: 3 |
|
}, |
|
eviolite: { |
|
name: "Eviolite", |
|
spritenum: 130, |
|
fling: { |
|
basePower: 40 |
|
}, |
|
onModifyDefPriority: 2, |
|
onModifyDef(def, pokemon) { |
|
if (pokemon.baseSpecies.nfe) { |
|
return this.chainModify(1.5); |
|
} |
|
}, |
|
onModifySpDPriority: 2, |
|
onModifySpD(spd, pokemon) { |
|
if (pokemon.baseSpecies.nfe) { |
|
return this.chainModify(1.5); |
|
} |
|
}, |
|
num: 538, |
|
gen: 5 |
|
}, |
|
expertbelt: { |
|
name: "Expert Belt", |
|
spritenum: 132, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onModifyDamage(damage, source, target, move) { |
|
if (move && target.getMoveHitData(move).typeMod > 0) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 268, |
|
gen: 4 |
|
}, |
|
fairiumz: { |
|
name: "Fairium Z", |
|
spritenum: 648, |
|
onPlate: "Fairy", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Fairy", |
|
forcedForme: "Arceus-Fairy", |
|
num: 793, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
fairyfeather: { |
|
name: "Fairy Feather", |
|
spritenum: 754, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Fairy") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 2401, |
|
gen: 9 |
|
}, |
|
fairygem: { |
|
name: "Fairy Gem", |
|
spritenum: 611, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Fairy" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 715, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
fairymemory: { |
|
name: "Fairy Memory", |
|
spritenum: 684, |
|
onMemory: "Fairy", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Fairy", |
|
itemUser: ["Silvally-Fairy"], |
|
num: 920, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
fastball: { |
|
name: "Fast Ball", |
|
spritenum: 137, |
|
num: 492, |
|
gen: 2, |
|
isPokeball: true |
|
}, |
|
fightinggem: { |
|
name: "Fighting Gem", |
|
spritenum: 139, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Fighting" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 553, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
fightingmemory: { |
|
name: "Fighting Memory", |
|
spritenum: 668, |
|
onMemory: "Fighting", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Fighting", |
|
itemUser: ["Silvally-Fighting"], |
|
num: 904, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
fightiniumz: { |
|
name: "Fightinium Z", |
|
spritenum: 637, |
|
onPlate: "Fighting", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Fighting", |
|
forcedForme: "Arceus-Fighting", |
|
num: 782, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
figyberry: { |
|
name: "Figy Berry", |
|
spritenum: 140, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Bug" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onTryEatItem(item, pokemon) { |
|
if (!this.runEvent("TryHeal", pokemon, null, this.effect, pokemon.baseMaxhp / 3)) |
|
return false; |
|
}, |
|
onEat(pokemon) { |
|
this.heal(pokemon.baseMaxhp / 3); |
|
if (pokemon.getNature().minus === "atk") { |
|
pokemon.addVolatile("confusion"); |
|
} |
|
}, |
|
num: 159, |
|
gen: 3 |
|
}, |
|
firegem: { |
|
name: "Fire Gem", |
|
spritenum: 141, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status" || move.flags["pledgecombo"]) |
|
return; |
|
if (move.type === "Fire" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 548, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
firememory: { |
|
name: "Fire Memory", |
|
spritenum: 676, |
|
onMemory: "Fire", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Fire", |
|
itemUser: ["Silvally-Fire"], |
|
num: 912, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
firestone: { |
|
name: "Fire Stone", |
|
spritenum: 142, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 82, |
|
gen: 1 |
|
}, |
|
firiumz: { |
|
name: "Firium Z", |
|
spritenum: 632, |
|
onPlate: "Fire", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Fire", |
|
forcedForme: "Arceus-Fire", |
|
num: 777, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
fistplate: { |
|
name: "Fist Plate", |
|
spritenum: 143, |
|
onPlate: "Fighting", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Fighting") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Fighting", |
|
num: 303, |
|
gen: 4 |
|
}, |
|
flameorb: { |
|
name: "Flame Orb", |
|
spritenum: 145, |
|
fling: { |
|
basePower: 30, |
|
status: "brn" |
|
}, |
|
onResidualOrder: 28, |
|
onResidualSubOrder: 3, |
|
onResidual(pokemon) { |
|
pokemon.trySetStatus("brn", pokemon); |
|
}, |
|
num: 273, |
|
gen: 4 |
|
}, |
|
flameplate: { |
|
name: "Flame Plate", |
|
spritenum: 146, |
|
onPlate: "Fire", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Fire") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Fire", |
|
num: 298, |
|
gen: 4 |
|
}, |
|
floatstone: { |
|
name: "Float Stone", |
|
spritenum: 147, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onModifyWeight(weighthg) { |
|
return this.trunc(weighthg / 2); |
|
}, |
|
num: 539, |
|
gen: 5 |
|
}, |
|
flowersweet: { |
|
name: "Flower Sweet", |
|
spritenum: 708, |
|
fling: { |
|
basePower: 0 |
|
}, |
|
num: 1113, |
|
gen: 8 |
|
}, |
|
flyinggem: { |
|
name: "Flying Gem", |
|
spritenum: 149, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Flying" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 556, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
flyingmemory: { |
|
name: "Flying Memory", |
|
spritenum: 669, |
|
onMemory: "Flying", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Flying", |
|
itemUser: ["Silvally-Flying"], |
|
num: 905, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
flyiniumz: { |
|
name: "Flyinium Z", |
|
spritenum: 640, |
|
onPlate: "Flying", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Flying", |
|
forcedForme: "Arceus-Flying", |
|
num: 785, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
focusband: { |
|
name: "Focus Band", |
|
spritenum: 150, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onDamagePriority: -40, |
|
onDamage(damage, target, source, effect) { |
|
if (this.randomChance(1, 10) && damage >= target.hp && effect && effect.effectType === "Move") { |
|
this.add("-activate", target, "item: Focus Band"); |
|
return target.hp - 1; |
|
} |
|
}, |
|
num: 230, |
|
gen: 2 |
|
}, |
|
focussash: { |
|
name: "Focus Sash", |
|
spritenum: 151, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onDamagePriority: -40, |
|
onDamage(damage, target, source, effect) { |
|
if (target.hp === target.maxhp && damage >= target.hp && effect && effect.effectType === "Move") { |
|
if (target.useItem()) { |
|
return target.hp - 1; |
|
} |
|
} |
|
}, |
|
num: 275, |
|
gen: 4 |
|
}, |
|
fossilizedbird: { |
|
name: "Fossilized Bird", |
|
spritenum: 700, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 1105, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
fossilizeddino: { |
|
name: "Fossilized Dino", |
|
spritenum: 703, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 1108, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
fossilizeddrake: { |
|
name: "Fossilized Drake", |
|
spritenum: 702, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 1107, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
fossilizedfish: { |
|
name: "Fossilized Fish", |
|
spritenum: 701, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 1106, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
friendball: { |
|
name: "Friend Ball", |
|
spritenum: 153, |
|
num: 497, |
|
gen: 2, |
|
isPokeball: true |
|
}, |
|
fullincense: { |
|
name: "Full Incense", |
|
spritenum: 155, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onFractionalPriority: -0.1, |
|
num: 316, |
|
gen: 4, |
|
isNonstandard: "Past" |
|
}, |
|
galaricacuff: { |
|
name: "Galarica Cuff", |
|
spritenum: 739, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 1582, |
|
gen: 8 |
|
}, |
|
galaricawreath: { |
|
name: "Galarica Wreath", |
|
spritenum: 740, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 1592, |
|
gen: 8 |
|
}, |
|
galladite: { |
|
name: "Galladite", |
|
spritenum: 616, |
|
megaStone: "Gallade-Mega", |
|
megaEvolves: "Gallade", |
|
itemUser: ["Gallade"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 756, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
ganlonberry: { |
|
name: "Ganlon Berry", |
|
spritenum: 158, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Ice" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
this.boost({ def: 1 }); |
|
}, |
|
num: 202, |
|
gen: 3 |
|
}, |
|
garchompite: { |
|
name: "Garchompite", |
|
spritenum: 589, |
|
megaStone: "Garchomp-Mega", |
|
megaEvolves: "Garchomp", |
|
itemUser: ["Garchomp"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 683, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
gardevoirite: { |
|
name: "Gardevoirite", |
|
spritenum: 587, |
|
megaStone: "Gardevoir-Mega", |
|
megaEvolves: "Gardevoir", |
|
itemUser: ["Gardevoir"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 657, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
gengarite: { |
|
name: "Gengarite", |
|
spritenum: 588, |
|
megaStone: "Gengar-Mega", |
|
megaEvolves: "Gengar", |
|
itemUser: ["Gengar"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 656, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
ghostgem: { |
|
name: "Ghost Gem", |
|
spritenum: 161, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Ghost" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 560, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
ghostmemory: { |
|
name: "Ghost Memory", |
|
spritenum: 674, |
|
onMemory: "Ghost", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Ghost", |
|
itemUser: ["Silvally-Ghost"], |
|
num: 910, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
ghostiumz: { |
|
name: "Ghostium Z", |
|
spritenum: 644, |
|
onPlate: "Ghost", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Ghost", |
|
forcedForme: "Arceus-Ghost", |
|
num: 789, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
glalitite: { |
|
name: "Glalitite", |
|
spritenum: 623, |
|
megaStone: "Glalie-Mega", |
|
megaEvolves: "Glalie", |
|
itemUser: ["Glalie"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 763, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
goldbottlecap: { |
|
name: "Gold Bottle Cap", |
|
spritenum: 697, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 796, |
|
gen: 7 |
|
}, |
|
grassgem: { |
|
name: "Grass Gem", |
|
spritenum: 172, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status" || move.flags["pledgecombo"]) |
|
return; |
|
if (move.type === "Grass" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 551, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
grassmemory: { |
|
name: "Grass Memory", |
|
spritenum: 678, |
|
onMemory: "Grass", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Grass", |
|
itemUser: ["Silvally-Grass"], |
|
num: 914, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
grassiumz: { |
|
name: "Grassium Z", |
|
spritenum: 635, |
|
onPlate: "Grass", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Grass", |
|
forcedForme: "Arceus-Grass", |
|
num: 780, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
grassyseed: { |
|
name: "Grassy Seed", |
|
spritenum: 667, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onSwitchInPriority: -1, |
|
onStart(pokemon) { |
|
if (!pokemon.ignoringItem() && this.field.isTerrain("grassyterrain")) { |
|
pokemon.useItem(); |
|
} |
|
}, |
|
onTerrainChange(pokemon) { |
|
if (this.field.isTerrain("grassyterrain")) { |
|
pokemon.useItem(); |
|
} |
|
}, |
|
boosts: { |
|
def: 1 |
|
}, |
|
num: 884, |
|
gen: 7 |
|
}, |
|
greatball: { |
|
name: "Great Ball", |
|
spritenum: 174, |
|
num: 3, |
|
gen: 1, |
|
isPokeball: true |
|
}, |
|
grepaberry: { |
|
name: "Grepa Berry", |
|
spritenum: 178, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Flying" |
|
}, |
|
onEat: false, |
|
num: 173, |
|
gen: 3 |
|
}, |
|
gripclaw: { |
|
name: "Grip Claw", |
|
spritenum: 179, |
|
fling: { |
|
basePower: 90 |
|
}, |
|
|
|
num: 286, |
|
gen: 4 |
|
}, |
|
griseouscore: { |
|
name: "Griseous Core", |
|
spritenum: 743, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (user.baseSpecies.num === 487 && (move.type === "Ghost" || move.type === "Dragon")) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source?.baseSpecies.num === 487 || pokemon.baseSpecies.num === 487) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Giratina-Origin", |
|
itemUser: ["Giratina-Origin"], |
|
num: 1779, |
|
gen: 8 |
|
}, |
|
griseousorb: { |
|
name: "Griseous Orb", |
|
spritenum: 180, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (user.baseSpecies.num === 487 && (move.type === "Ghost" || move.type === "Dragon")) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
itemUser: ["Giratina"], |
|
num: 112, |
|
gen: 4 |
|
}, |
|
groundgem: { |
|
name: "Ground Gem", |
|
spritenum: 182, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Ground" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 555, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
groundmemory: { |
|
name: "Ground Memory", |
|
spritenum: 671, |
|
onMemory: "Ground", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Ground", |
|
itemUser: ["Silvally-Ground"], |
|
num: 907, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
groundiumz: { |
|
name: "Groundium Z", |
|
spritenum: 639, |
|
onPlate: "Ground", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Ground", |
|
forcedForme: "Arceus-Ground", |
|
num: 784, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
gyaradosite: { |
|
name: "Gyaradosite", |
|
spritenum: 589, |
|
megaStone: "Gyarados-Mega", |
|
megaEvolves: "Gyarados", |
|
itemUser: ["Gyarados"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 676, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
habanberry: { |
|
name: "Haban Berry", |
|
spritenum: 185, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Dragon" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Dragon" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 197, |
|
gen: 4 |
|
}, |
|
hardstone: { |
|
name: "Hard Stone", |
|
spritenum: 187, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Rock") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 238, |
|
gen: 2 |
|
}, |
|
healball: { |
|
name: "Heal Ball", |
|
spritenum: 188, |
|
num: 14, |
|
gen: 4, |
|
isPokeball: true |
|
}, |
|
hearthflamemask: { |
|
name: "Hearthflame Mask", |
|
spritenum: 760, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (user.baseSpecies.name.startsWith("Ogerpon-Hearthflame")) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, source) { |
|
if (source.baseSpecies.baseSpecies === "Ogerpon") |
|
return false; |
|
return true; |
|
}, |
|
forcedForme: "Ogerpon-Hearthflame", |
|
itemUser: ["Ogerpon-Hearthflame"], |
|
num: 2408, |
|
gen: 9 |
|
}, |
|
heatrock: { |
|
name: "Heat Rock", |
|
spritenum: 193, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
num: 284, |
|
gen: 4 |
|
}, |
|
heavyball: { |
|
name: "Heavy Ball", |
|
spritenum: 194, |
|
num: 495, |
|
gen: 2, |
|
isPokeball: true |
|
}, |
|
heavydutyboots: { |
|
name: "Heavy-Duty Boots", |
|
spritenum: 715, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 1120, |
|
gen: 8 |
|
|
|
}, |
|
helixfossil: { |
|
name: "Helix Fossil", |
|
spritenum: 195, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 101, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
heracronite: { |
|
name: "Heracronite", |
|
spritenum: 590, |
|
megaStone: "Heracross-Mega", |
|
megaEvolves: "Heracross", |
|
itemUser: ["Heracross"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 680, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
hondewberry: { |
|
name: "Hondew Berry", |
|
spritenum: 213, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Ground" |
|
}, |
|
onEat: false, |
|
num: 172, |
|
gen: 3 |
|
}, |
|
houndoominite: { |
|
name: "Houndoominite", |
|
spritenum: 591, |
|
megaStone: "Houndoom-Mega", |
|
megaEvolves: "Houndoom", |
|
itemUser: ["Houndoom"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 666, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
iapapaberry: { |
|
name: "Iapapa Berry", |
|
spritenum: 217, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Dark" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onTryEatItem(item, pokemon) { |
|
if (!this.runEvent("TryHeal", pokemon, null, this.effect, pokemon.baseMaxhp / 3)) |
|
return false; |
|
}, |
|
onEat(pokemon) { |
|
this.heal(pokemon.baseMaxhp / 3); |
|
if (pokemon.getNature().minus === "def") { |
|
pokemon.addVolatile("confusion"); |
|
} |
|
}, |
|
num: 163, |
|
gen: 3 |
|
}, |
|
icegem: { |
|
name: "Ice Gem", |
|
spritenum: 218, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Ice" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 552, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
icememory: { |
|
name: "Ice Memory", |
|
spritenum: 681, |
|
onMemory: "Ice", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Ice", |
|
itemUser: ["Silvally-Ice"], |
|
num: 917, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
icestone: { |
|
name: "Ice Stone", |
|
spritenum: 693, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 849, |
|
gen: 7 |
|
}, |
|
icicleplate: { |
|
name: "Icicle Plate", |
|
spritenum: 220, |
|
onPlate: "Ice", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Ice") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Ice", |
|
num: 302, |
|
gen: 4 |
|
}, |
|
iciumz: { |
|
name: "Icium Z", |
|
spritenum: 636, |
|
onPlate: "Ice", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Ice", |
|
forcedForme: "Arceus-Ice", |
|
num: 781, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
icyrock: { |
|
name: "Icy Rock", |
|
spritenum: 221, |
|
fling: { |
|
basePower: 40 |
|
}, |
|
num: 282, |
|
gen: 4 |
|
}, |
|
inciniumz: { |
|
name: "Incinium Z", |
|
spritenum: 651, |
|
onTakeItem: false, |
|
zMove: "Malicious Moonsault", |
|
zMoveFrom: "Darkest Lariat", |
|
itemUser: ["Incineroar"], |
|
num: 799, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
insectplate: { |
|
name: "Insect Plate", |
|
spritenum: 223, |
|
onPlate: "Bug", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Bug") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Bug", |
|
num: 308, |
|
gen: 4 |
|
}, |
|
ironball: { |
|
name: "Iron Ball", |
|
spritenum: 224, |
|
fling: { |
|
basePower: 130 |
|
}, |
|
onEffectiveness(typeMod, target, type, move) { |
|
if (!target) |
|
return; |
|
if (target.volatiles["ingrain"] || target.volatiles["smackdown"] || this.field.getPseudoWeather("gravity")) |
|
return; |
|
if (move.type === "Ground" && target.hasType("Flying")) |
|
return 0; |
|
}, |
|
|
|
onModifySpe(spe) { |
|
return this.chainModify(0.5); |
|
}, |
|
num: 278, |
|
gen: 4 |
|
}, |
|
ironplate: { |
|
name: "Iron Plate", |
|
spritenum: 225, |
|
onPlate: "Steel", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Steel") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Steel", |
|
num: 313, |
|
gen: 4 |
|
}, |
|
jabocaberry: { |
|
name: "Jaboca Berry", |
|
spritenum: 230, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Dragon" |
|
}, |
|
onDamagingHit(damage, target, source, move) { |
|
if (move.category === "Physical" && source.hp && source.isActive && !source.hasAbility("magicguard")) { |
|
if (target.eatItem()) { |
|
this.damage(source.baseMaxhp / (target.hasAbility("ripen") ? 4 : 8), source, target); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 211, |
|
gen: 4 |
|
}, |
|
jawfossil: { |
|
name: "Jaw Fossil", |
|
spritenum: 694, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 710, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
kasibberry: { |
|
name: "Kasib Berry", |
|
spritenum: 233, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Ghost" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Ghost" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 196, |
|
gen: 4 |
|
}, |
|
kebiaberry: { |
|
name: "Kebia Berry", |
|
spritenum: 234, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Poison" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Poison" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 190, |
|
gen: 4 |
|
}, |
|
keeberry: { |
|
name: "Kee Berry", |
|
spritenum: 593, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Fairy" |
|
}, |
|
onAfterMoveSecondary(target, source, move) { |
|
if (move.category === "Physical") { |
|
if (move.id === "present" && move.heal) |
|
return; |
|
target.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
this.boost({ def: 1 }); |
|
}, |
|
num: 687, |
|
gen: 6 |
|
}, |
|
kelpsyberry: { |
|
name: "Kelpsy Berry", |
|
spritenum: 235, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Fighting" |
|
}, |
|
onEat: false, |
|
num: 170, |
|
gen: 3 |
|
}, |
|
kangaskhanite: { |
|
name: "Kangaskhanite", |
|
spritenum: 592, |
|
megaStone: "Kangaskhan-Mega", |
|
megaEvolves: "Kangaskhan", |
|
itemUser: ["Kangaskhan"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 675, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
kingsrock: { |
|
name: "King's Rock", |
|
spritenum: 236, |
|
fling: { |
|
basePower: 30, |
|
volatileStatus: "flinch" |
|
}, |
|
onModifyMovePriority: -1, |
|
onModifyMove(move) { |
|
if (move.category !== "Status") { |
|
if (!move.secondaries) |
|
move.secondaries = []; |
|
for (const secondary of move.secondaries) { |
|
if (secondary.volatileStatus === "flinch") |
|
return; |
|
} |
|
move.secondaries.push({ |
|
chance: 10, |
|
volatileStatus: "flinch" |
|
}); |
|
} |
|
}, |
|
num: 221, |
|
gen: 2 |
|
}, |
|
kommoniumz: { |
|
name: "Kommonium Z", |
|
spritenum: 690, |
|
onTakeItem: false, |
|
zMove: "Clangorous Soulblaze", |
|
zMoveFrom: "Clanging Scales", |
|
itemUser: ["Kommo-o", "Kommo-o-Totem"], |
|
num: 926, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
laggingtail: { |
|
name: "Lagging Tail", |
|
spritenum: 237, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onFractionalPriority: -0.1, |
|
num: 279, |
|
gen: 4 |
|
}, |
|
lansatberry: { |
|
name: "Lansat Berry", |
|
spritenum: 238, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Flying" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
pokemon.addVolatile("focusenergy"); |
|
}, |
|
num: 206, |
|
gen: 3 |
|
}, |
|
latiasite: { |
|
name: "Latiasite", |
|
spritenum: 629, |
|
megaStone: "Latias-Mega", |
|
megaEvolves: "Latias", |
|
itemUser: ["Latias"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 684, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
latiosite: { |
|
name: "Latiosite", |
|
spritenum: 630, |
|
megaStone: "Latios-Mega", |
|
megaEvolves: "Latios", |
|
itemUser: ["Latios"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 685, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
laxincense: { |
|
name: "Lax Incense", |
|
spritenum: 240, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onModifyAccuracyPriority: -2, |
|
onModifyAccuracy(accuracy) { |
|
if (typeof accuracy !== "number") |
|
return; |
|
this.debug("lax incense - decreasing accuracy"); |
|
return this.chainModify([3686, 4096]); |
|
}, |
|
num: 255, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
leafstone: { |
|
name: "Leaf Stone", |
|
spritenum: 241, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 85, |
|
gen: 1 |
|
}, |
|
leek: { |
|
name: "Leek", |
|
fling: { |
|
basePower: 60 |
|
}, |
|
spritenum: 475, |
|
onModifyCritRatio(critRatio, user) { |
|
if (["farfetchd", "sirfetchd"].includes(this.toID(user.baseSpecies.baseSpecies))) { |
|
return critRatio + 2; |
|
} |
|
}, |
|
itemUser: ["Farfetch\u2019d", "Farfetch\u2019d-Galar", "Sirfetch\u2019d"], |
|
num: 259, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
leftovers: { |
|
name: "Leftovers", |
|
spritenum: 242, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onResidualOrder: 5, |
|
onResidualSubOrder: 4, |
|
onResidual(pokemon) { |
|
this.heal(pokemon.baseMaxhp / 16); |
|
}, |
|
num: 234, |
|
gen: 2 |
|
}, |
|
leppaberry: { |
|
name: "Leppa Berry", |
|
spritenum: 244, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Fighting" |
|
}, |
|
onUpdate(pokemon) { |
|
if (!pokemon.hp) |
|
return; |
|
if (pokemon.moveSlots.some((move) => move.pp === 0)) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
const moveSlot = pokemon.moveSlots.find((move) => move.pp === 0) || pokemon.moveSlots.find((move) => move.pp < move.maxpp); |
|
if (!moveSlot) |
|
return; |
|
moveSlot.pp += 10; |
|
if (moveSlot.pp > moveSlot.maxpp) |
|
moveSlot.pp = moveSlot.maxpp; |
|
this.add("-activate", pokemon, "item: Leppa Berry", moveSlot.move, "[consumed]"); |
|
}, |
|
num: 154, |
|
gen: 3 |
|
}, |
|
levelball: { |
|
name: "Level Ball", |
|
spritenum: 246, |
|
num: 493, |
|
gen: 2, |
|
isPokeball: true |
|
}, |
|
liechiberry: { |
|
name: "Liechi Berry", |
|
spritenum: 248, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Grass" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
this.boost({ atk: 1 }); |
|
}, |
|
num: 201, |
|
gen: 3 |
|
}, |
|
lifeorb: { |
|
name: "Life Orb", |
|
spritenum: 249, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onModifyDamage(damage, source, target, move) { |
|
return this.chainModify([5324, 4096]); |
|
}, |
|
onAfterMoveSecondarySelf(source, target, move) { |
|
if (source && source !== target && move && move.category !== "Status" && !source.forceSwitchFlag) { |
|
this.damage(source.baseMaxhp / 10, source, source, this.dex.items.get("lifeorb")); |
|
} |
|
}, |
|
num: 270, |
|
gen: 4 |
|
}, |
|
lightball: { |
|
name: "Light Ball", |
|
spritenum: 251, |
|
fling: { |
|
basePower: 30, |
|
status: "par" |
|
}, |
|
onModifyAtkPriority: 1, |
|
onModifyAtk(atk, pokemon) { |
|
if (pokemon.baseSpecies.baseSpecies === "Pikachu") { |
|
return this.chainModify(2); |
|
} |
|
}, |
|
onModifySpAPriority: 1, |
|
onModifySpA(spa, pokemon) { |
|
if (pokemon.baseSpecies.baseSpecies === "Pikachu") { |
|
return this.chainModify(2); |
|
} |
|
}, |
|
itemUser: ["Pikachu", "Pikachu-Cosplay", "Pikachu-Rock-Star", "Pikachu-Belle", "Pikachu-Pop-Star", "Pikachu-PhD", "Pikachu-Libre", "Pikachu-Original", "Pikachu-Hoenn", "Pikachu-Sinnoh", "Pikachu-Unova", "Pikachu-Kalos", "Pikachu-Alola", "Pikachu-Partner", "Pikachu-Starter", "Pikachu-World"], |
|
num: 236, |
|
gen: 2 |
|
}, |
|
lightclay: { |
|
name: "Light Clay", |
|
spritenum: 252, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
|
|
num: 269, |
|
gen: 4 |
|
}, |
|
loadeddice: { |
|
name: "Loaded Dice", |
|
spritenum: 751, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
|
|
onModifyMove(move) { |
|
if (move.multiaccuracy) { |
|
delete move.multiaccuracy; |
|
} |
|
}, |
|
num: 1886, |
|
gen: 9 |
|
}, |
|
lopunnite: { |
|
name: "Lopunnite", |
|
spritenum: 626, |
|
megaStone: "Lopunny-Mega", |
|
megaEvolves: "Lopunny", |
|
itemUser: ["Lopunny"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 768, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
loveball: { |
|
name: "Love Ball", |
|
spritenum: 258, |
|
num: 496, |
|
gen: 2, |
|
isPokeball: true |
|
}, |
|
lovesweet: { |
|
name: "Love Sweet", |
|
spritenum: 705, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
num: 1110, |
|
gen: 8 |
|
}, |
|
lucarionite: { |
|
name: "Lucarionite", |
|
spritenum: 594, |
|
megaStone: "Lucario-Mega", |
|
megaEvolves: "Lucario", |
|
itemUser: ["Lucario"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 673, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
luckypunch: { |
|
name: "Lucky Punch", |
|
spritenum: 261, |
|
fling: { |
|
basePower: 40 |
|
}, |
|
onModifyCritRatio(critRatio, user) { |
|
if (user.baseSpecies.name === "Chansey") { |
|
return critRatio + 2; |
|
} |
|
}, |
|
itemUser: ["Chansey"], |
|
num: 256, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
lumberry: { |
|
name: "Lum Berry", |
|
spritenum: 262, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Flying" |
|
}, |
|
onAfterSetStatusPriority: -1, |
|
onAfterSetStatus(status, pokemon) { |
|
pokemon.eatItem(); |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status || pokemon.volatiles["confusion"]) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
pokemon.cureStatus(); |
|
pokemon.removeVolatile("confusion"); |
|
}, |
|
num: 157, |
|
gen: 3 |
|
}, |
|
luminousmoss: { |
|
name: "Luminous Moss", |
|
spritenum: 595, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onDamagingHit(damage, target, source, move) { |
|
if (move.type === "Water") { |
|
target.useItem(); |
|
} |
|
}, |
|
boosts: { |
|
spd: 1 |
|
}, |
|
num: 648, |
|
gen: 6 |
|
}, |
|
lunaliumz: { |
|
name: "Lunalium Z", |
|
spritenum: 686, |
|
onTakeItem: false, |
|
zMove: "Menacing Moonraze Maelstrom", |
|
zMoveFrom: "Moongeist Beam", |
|
itemUser: ["Lunala", "Necrozma-Dawn-Wings"], |
|
num: 922, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
lureball: { |
|
name: "Lure Ball", |
|
spritenum: 264, |
|
num: 494, |
|
gen: 2, |
|
isPokeball: true |
|
}, |
|
lustrousglobe: { |
|
name: "Lustrous Globe", |
|
spritenum: 742, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (user.baseSpecies.num === 484 && (move.type === "Water" || move.type === "Dragon")) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source?.baseSpecies.num === 484 || pokemon.baseSpecies.num === 484) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Palkia-Origin", |
|
itemUser: ["Palkia-Origin"], |
|
num: 1778, |
|
gen: 8 |
|
}, |
|
lustrousorb: { |
|
name: "Lustrous Orb", |
|
spritenum: 265, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (user.baseSpecies.num === 484 && (move.type === "Water" || move.type === "Dragon")) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
itemUser: ["Palkia"], |
|
num: 136, |
|
gen: 4 |
|
}, |
|
luxuryball: { |
|
name: "Luxury Ball", |
|
spritenum: 266, |
|
num: 11, |
|
gen: 3, |
|
isPokeball: true |
|
}, |
|
lycaniumz: { |
|
name: "Lycanium Z", |
|
spritenum: 689, |
|
onTakeItem: false, |
|
zMove: "Splintered Stormshards", |
|
zMoveFrom: "Stone Edge", |
|
itemUser: ["Lycanroc", "Lycanroc-Midnight", "Lycanroc-Dusk"], |
|
num: 925, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
machobrace: { |
|
name: "Macho Brace", |
|
spritenum: 269, |
|
ignoreKlutz: true, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
onModifySpe(spe) { |
|
return this.chainModify(0.5); |
|
}, |
|
num: 215, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
magmarizer: { |
|
name: "Magmarizer", |
|
spritenum: 272, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 323, |
|
gen: 4 |
|
}, |
|
magnet: { |
|
name: "Magnet", |
|
spritenum: 273, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Electric") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 242, |
|
gen: 2 |
|
}, |
|
magoberry: { |
|
name: "Mago Berry", |
|
spritenum: 274, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Ghost" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onTryEatItem(item, pokemon) { |
|
if (!this.runEvent("TryHeal", pokemon, null, this.effect, pokemon.baseMaxhp / 3)) |
|
return false; |
|
}, |
|
onEat(pokemon) { |
|
this.heal(pokemon.baseMaxhp / 3); |
|
if (pokemon.getNature().minus === "spe") { |
|
pokemon.addVolatile("confusion"); |
|
} |
|
}, |
|
num: 161, |
|
gen: 3 |
|
}, |
|
magostberry: { |
|
name: "Magost Berry", |
|
spritenum: 275, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Rock" |
|
}, |
|
onEat: false, |
|
num: 176, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
mail: { |
|
name: "Mail", |
|
spritenum: 403, |
|
onTakeItem(item, source) { |
|
if (!this.activeMove) |
|
return false; |
|
if (this.activeMove.id !== "knockoff" && this.activeMove.id !== "thief" && this.activeMove.id !== "covet") |
|
return false; |
|
}, |
|
num: 137, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
maliciousarmor: { |
|
name: "Malicious Armor", |
|
spritenum: 744, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 1861, |
|
gen: 9 |
|
}, |
|
manectite: { |
|
name: "Manectite", |
|
spritenum: 596, |
|
megaStone: "Manectric-Mega", |
|
megaEvolves: "Manectric", |
|
itemUser: ["Manectric"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 682, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
marangaberry: { |
|
name: "Maranga Berry", |
|
spritenum: 597, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Dark" |
|
}, |
|
onAfterMoveSecondary(target, source, move) { |
|
if (move.category === "Special") { |
|
target.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
this.boost({ spd: 1 }); |
|
}, |
|
num: 688, |
|
gen: 6 |
|
}, |
|
marshadiumz: { |
|
name: "Marshadium Z", |
|
spritenum: 654, |
|
onTakeItem: false, |
|
zMove: "Soul-Stealing 7-Star Strike", |
|
zMoveFrom: "Spectral Thief", |
|
itemUser: ["Marshadow"], |
|
num: 802, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
masterball: { |
|
name: "Master Ball", |
|
spritenum: 276, |
|
num: 1, |
|
gen: 1, |
|
isPokeball: true |
|
}, |
|
masterpieceteacup: { |
|
name: "Masterpiece Teacup", |
|
spritenum: 757, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 2404, |
|
gen: 9 |
|
}, |
|
mawilite: { |
|
name: "Mawilite", |
|
spritenum: 598, |
|
megaStone: "Mawile-Mega", |
|
megaEvolves: "Mawile", |
|
itemUser: ["Mawile"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 681, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
meadowplate: { |
|
name: "Meadow Plate", |
|
spritenum: 282, |
|
onPlate: "Grass", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Grass") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Grass", |
|
num: 301, |
|
gen: 4 |
|
}, |
|
medichamite: { |
|
name: "Medichamite", |
|
spritenum: 599, |
|
megaStone: "Medicham-Mega", |
|
megaEvolves: "Medicham", |
|
itemUser: ["Medicham"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 665, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
mentalherb: { |
|
name: "Mental Herb", |
|
spritenum: 285, |
|
fling: { |
|
basePower: 10, |
|
effect(pokemon) { |
|
const conditions = ["attract", "taunt", "encore", "torment", "disable", "healblock"]; |
|
for (const firstCondition of conditions) { |
|
if (pokemon.volatiles[firstCondition]) { |
|
for (const secondCondition of conditions) { |
|
pokemon.removeVolatile(secondCondition); |
|
if (firstCondition === "attract" && secondCondition === "attract") { |
|
this.add("-end", pokemon, "move: Attract", "[from] item: Mental Herb"); |
|
} |
|
} |
|
return; |
|
} |
|
} |
|
} |
|
}, |
|
onUpdate(pokemon) { |
|
const conditions = ["attract", "taunt", "encore", "torment", "disable", "healblock"]; |
|
for (const firstCondition of conditions) { |
|
if (pokemon.volatiles[firstCondition]) { |
|
if (!pokemon.useItem()) |
|
return; |
|
for (const secondCondition of conditions) { |
|
pokemon.removeVolatile(secondCondition); |
|
if (firstCondition === "attract" && secondCondition === "attract") { |
|
this.add("-end", pokemon, "move: Attract", "[from] item: Mental Herb"); |
|
} |
|
} |
|
return; |
|
} |
|
} |
|
}, |
|
num: 219, |
|
gen: 3 |
|
}, |
|
metagrossite: { |
|
name: "Metagrossite", |
|
spritenum: 618, |
|
megaStone: "Metagross-Mega", |
|
megaEvolves: "Metagross", |
|
itemUser: ["Metagross"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 758, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
metalalloy: { |
|
name: "Metal Alloy", |
|
spritenum: 761, |
|
num: 2482, |
|
gen: 9 |
|
}, |
|
metalcoat: { |
|
name: "Metal Coat", |
|
spritenum: 286, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Steel") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 233, |
|
gen: 2 |
|
}, |
|
metalpowder: { |
|
name: "Metal Powder", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 287, |
|
onModifyDefPriority: 2, |
|
onModifyDef(def, pokemon) { |
|
if (pokemon.species.name === "Ditto" && !pokemon.transformed) { |
|
return this.chainModify(2); |
|
} |
|
}, |
|
itemUser: ["Ditto"], |
|
num: 257, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
metronome: { |
|
name: "Metronome", |
|
spritenum: 289, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onStart(pokemon) { |
|
pokemon.addVolatile("metronome"); |
|
}, |
|
condition: { |
|
onStart(pokemon) { |
|
this.effectState.lastMove = ""; |
|
this.effectState.numConsecutive = 0; |
|
}, |
|
onTryMovePriority: -2, |
|
onTryMove(pokemon, target, move) { |
|
if (!pokemon.hasItem("metronome")) { |
|
pokemon.removeVolatile("metronome"); |
|
return; |
|
} |
|
if (move.callsMove) |
|
return; |
|
if (this.effectState.lastMove === move.id && pokemon.moveLastTurnResult) { |
|
this.effectState.numConsecutive++; |
|
} else if (pokemon.volatiles["twoturnmove"]) { |
|
if (this.effectState.lastMove !== move.id) { |
|
this.effectState.numConsecutive = 1; |
|
} else { |
|
this.effectState.numConsecutive++; |
|
} |
|
} else { |
|
this.effectState.numConsecutive = 0; |
|
} |
|
this.effectState.lastMove = move.id; |
|
}, |
|
onModifyDamage(damage, source, target, move) { |
|
const dmgMod = [4096, 4915, 5734, 6553, 7372, 8192]; |
|
const numConsecutive = this.effectState.numConsecutive > 5 ? 5 : this.effectState.numConsecutive; |
|
this.debug(`Current Metronome boost: ${dmgMod[numConsecutive]}/4096`); |
|
return this.chainModify([dmgMod[numConsecutive], 4096]); |
|
} |
|
}, |
|
num: 277, |
|
gen: 4 |
|
}, |
|
mewniumz: { |
|
name: "Mewnium Z", |
|
spritenum: 658, |
|
onTakeItem: false, |
|
zMove: "Genesis Supernova", |
|
zMoveFrom: "Psychic", |
|
itemUser: ["Mew"], |
|
num: 806, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
mewtwonitex: { |
|
name: "Mewtwonite X", |
|
spritenum: 600, |
|
megaStone: "Mewtwo-Mega-X", |
|
megaEvolves: "Mewtwo", |
|
itemUser: ["Mewtwo"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 662, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
mewtwonitey: { |
|
name: "Mewtwonite Y", |
|
spritenum: 601, |
|
megaStone: "Mewtwo-Mega-Y", |
|
megaEvolves: "Mewtwo", |
|
itemUser: ["Mewtwo"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 663, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
micleberry: { |
|
name: "Micle Berry", |
|
spritenum: 290, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Rock" |
|
}, |
|
onResidual(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
pokemon.addVolatile("micleberry"); |
|
}, |
|
condition: { |
|
duration: 2, |
|
onSourceAccuracy(accuracy, target, source, move) { |
|
if (!move.ohko) { |
|
this.add("-enditem", source, "Micle Berry"); |
|
source.removeVolatile("micleberry"); |
|
if (typeof accuracy === "number") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
} |
|
} |
|
}, |
|
num: 209, |
|
gen: 4 |
|
}, |
|
mimikiumz: { |
|
name: "Mimikium Z", |
|
spritenum: 688, |
|
onTakeItem: false, |
|
zMove: "Let's Snuggle Forever", |
|
zMoveFrom: "Play Rough", |
|
itemUser: ["Mimikyu", "Mimikyu-Busted", "Mimikyu-Totem", "Mimikyu-Busted-Totem"], |
|
num: 924, |
|
isNonstandard: "Past", |
|
gen: 7 |
|
}, |
|
mindplate: { |
|
name: "Mind Plate", |
|
spritenum: 291, |
|
onPlate: "Psychic", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Psychic") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Psychic", |
|
num: 307, |
|
gen: 4 |
|
}, |
|
miracleseed: { |
|
name: "Miracle Seed", |
|
fling: { |
|
basePower: 30 |
|
}, |
|
spritenum: 292, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Grass") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 239, |
|
gen: 2 |
|
}, |
|
mirrorherb: { |
|
name: "Mirror Herb", |
|
spritenum: 748, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onFoeAfterBoost(boost, target, source, effect) { |
|
if (effect?.name === "Opportunist" || effect?.name === "Mirror Herb") |
|
return; |
|
if (!this.effectState.boosts) |
|
this.effectState.boosts = {}; |
|
const boostPlus = this.effectState.boosts; |
|
let i; |
|
for (i in boost) { |
|
if (boost[i] > 0) { |
|
boostPlus[i] = (boostPlus[i] || 0) + boost[i]; |
|
this.effectState.ready = true; |
|
} |
|
} |
|
}, |
|
onAnySwitchInPriority: -3, |
|
onAnySwitchIn() { |
|
if (!this.effectState.ready || !this.effectState.boosts) |
|
return; |
|
this.effectState.target.useItem(); |
|
}, |
|
onAnyAfterMove() { |
|
if (!this.effectState.ready || !this.effectState.boosts) |
|
return; |
|
this.effectState.target.useItem(); |
|
}, |
|
onResidualOrder: 29, |
|
onResidual(pokemon) { |
|
if (!this.effectState.ready || !this.effectState.boosts) |
|
return; |
|
this.effectState.target.useItem(); |
|
}, |
|
onUse(pokemon) { |
|
this.boost(this.effectState.boosts, pokemon); |
|
}, |
|
onEnd() { |
|
delete this.effectState.boosts; |
|
delete this.effectState.ready; |
|
}, |
|
num: 1883, |
|
gen: 9 |
|
}, |
|
mistyseed: { |
|
name: "Misty Seed", |
|
spritenum: 666, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onSwitchInPriority: -1, |
|
onStart(pokemon) { |
|
if (!pokemon.ignoringItem() && this.field.isTerrain("mistyterrain")) { |
|
pokemon.useItem(); |
|
} |
|
}, |
|
onTerrainChange(pokemon) { |
|
if (this.field.isTerrain("mistyterrain")) { |
|
pokemon.useItem(); |
|
} |
|
}, |
|
boosts: { |
|
spd: 1 |
|
}, |
|
num: 883, |
|
gen: 7 |
|
}, |
|
moonball: { |
|
name: "Moon Ball", |
|
spritenum: 294, |
|
num: 498, |
|
gen: 2, |
|
isPokeball: true |
|
}, |
|
moonstone: { |
|
name: "Moon Stone", |
|
spritenum: 295, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 81, |
|
gen: 1 |
|
}, |
|
muscleband: { |
|
name: "Muscle Band", |
|
spritenum: 297, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onBasePowerPriority: 16, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.category === "Physical") { |
|
return this.chainModify([4505, 4096]); |
|
} |
|
}, |
|
num: 266, |
|
gen: 4 |
|
}, |
|
mysticwater: { |
|
name: "Mystic Water", |
|
spritenum: 300, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Water") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 243, |
|
gen: 2 |
|
}, |
|
nanabberry: { |
|
name: "Nanab Berry", |
|
spritenum: 302, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Water" |
|
}, |
|
onEat: false, |
|
num: 166, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
nestball: { |
|
name: "Nest Ball", |
|
spritenum: 303, |
|
num: 8, |
|
gen: 3, |
|
isPokeball: true |
|
}, |
|
netball: { |
|
name: "Net Ball", |
|
spritenum: 304, |
|
num: 6, |
|
gen: 3, |
|
isPokeball: true |
|
}, |
|
nevermeltice: { |
|
name: "Never-Melt Ice", |
|
spritenum: 305, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Ice") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 246, |
|
gen: 2 |
|
}, |
|
nomelberry: { |
|
name: "Nomel Berry", |
|
spritenum: 306, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Dragon" |
|
}, |
|
onEat: false, |
|
num: 178, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
normalgem: { |
|
name: "Normal Gem", |
|
spritenum: 307, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status" || move.flags["pledgecombo"]) |
|
return; |
|
if (move.type === "Normal" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 564, |
|
gen: 5 |
|
}, |
|
normaliumz: { |
|
name: "Normalium Z", |
|
spritenum: 631, |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Normal", |
|
num: 776, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
occaberry: { |
|
name: "Occa Berry", |
|
spritenum: 311, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Fire" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Fire" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 184, |
|
gen: 4 |
|
}, |
|
oddincense: { |
|
name: "Odd Incense", |
|
spritenum: 312, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Psychic") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 314, |
|
gen: 4, |
|
isNonstandard: "Past" |
|
}, |
|
oldamber: { |
|
name: "Old Amber", |
|
spritenum: 314, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 103, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
oranberry: { |
|
name: "Oran Berry", |
|
spritenum: 319, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Poison" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 2) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onTryEatItem(item, pokemon) { |
|
if (!this.runEvent("TryHeal", pokemon, null, this.effect, 10)) |
|
return false; |
|
}, |
|
onEat(pokemon) { |
|
this.heal(10); |
|
}, |
|
num: 155, |
|
gen: 3 |
|
}, |
|
ovalstone: { |
|
name: "Oval Stone", |
|
spritenum: 321, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 110, |
|
gen: 4 |
|
}, |
|
pamtreberry: { |
|
name: "Pamtre Berry", |
|
spritenum: 323, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Steel" |
|
}, |
|
onEat: false, |
|
num: 180, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
parkball: { |
|
name: "Park Ball", |
|
spritenum: 325, |
|
num: 500, |
|
gen: 4, |
|
isPokeball: true, |
|
isNonstandard: "Unobtainable" |
|
}, |
|
passhoberry: { |
|
name: "Passho Berry", |
|
spritenum: 329, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Water" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Water" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 185, |
|
gen: 4 |
|
}, |
|
payapaberry: { |
|
name: "Payapa Berry", |
|
spritenum: 330, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Psychic" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Psychic" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 193, |
|
gen: 4 |
|
}, |
|
pechaberry: { |
|
name: "Pecha Berry", |
|
spritenum: 333, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Electric" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status === "psn" || pokemon.status === "tox") { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
if (pokemon.status === "psn" || pokemon.status === "tox") { |
|
pokemon.cureStatus(); |
|
} |
|
}, |
|
num: 151, |
|
gen: 3 |
|
}, |
|
persimberry: { |
|
name: "Persim Berry", |
|
spritenum: 334, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Ground" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.volatiles["confusion"]) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
pokemon.removeVolatile("confusion"); |
|
}, |
|
num: 156, |
|
gen: 3 |
|
}, |
|
petayaberry: { |
|
name: "Petaya Berry", |
|
spritenum: 335, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Poison" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
this.boost({ spa: 1 }); |
|
}, |
|
num: 204, |
|
gen: 3 |
|
}, |
|
pidgeotite: { |
|
name: "Pidgeotite", |
|
spritenum: 622, |
|
megaStone: "Pidgeot-Mega", |
|
megaEvolves: "Pidgeot", |
|
itemUser: ["Pidgeot"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 762, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
pikaniumz: { |
|
name: "Pikanium Z", |
|
spritenum: 649, |
|
onTakeItem: false, |
|
zMove: "Catastropika", |
|
zMoveFrom: "Volt Tackle", |
|
itemUser: ["Pikachu"], |
|
num: 794, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
pikashuniumz: { |
|
name: "Pikashunium Z", |
|
spritenum: 659, |
|
onTakeItem: false, |
|
zMove: "10,000,000 Volt Thunderbolt", |
|
zMoveFrom: "Thunderbolt", |
|
itemUser: ["Pikachu-Original", "Pikachu-Hoenn", "Pikachu-Sinnoh", "Pikachu-Unova", "Pikachu-Kalos", "Pikachu-Alola", "Pikachu-Partner"], |
|
num: 836, |
|
isNonstandard: "Past", |
|
gen: 7 |
|
}, |
|
pinapberry: { |
|
name: "Pinap Berry", |
|
spritenum: 337, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Grass" |
|
}, |
|
onEat: false, |
|
num: 168, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
pinsirite: { |
|
name: "Pinsirite", |
|
spritenum: 602, |
|
megaStone: "Pinsir-Mega", |
|
megaEvolves: "Pinsir", |
|
itemUser: ["Pinsir"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 671, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
pixieplate: { |
|
name: "Pixie Plate", |
|
spritenum: 610, |
|
onPlate: "Fairy", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Fairy") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Fairy", |
|
num: 644, |
|
gen: 6 |
|
}, |
|
plumefossil: { |
|
name: "Plume Fossil", |
|
spritenum: 339, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 573, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
poisonbarb: { |
|
name: "Poison Barb", |
|
spritenum: 343, |
|
fling: { |
|
basePower: 70, |
|
status: "psn" |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Poison") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 245, |
|
gen: 2 |
|
}, |
|
poisongem: { |
|
name: "Poison Gem", |
|
spritenum: 344, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Poison" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 554, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
poisonmemory: { |
|
name: "Poison Memory", |
|
spritenum: 670, |
|
onMemory: "Poison", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Poison", |
|
itemUser: ["Silvally-Poison"], |
|
num: 906, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
poisoniumz: { |
|
name: "Poisonium Z", |
|
spritenum: 638, |
|
onPlate: "Poison", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Poison", |
|
forcedForme: "Arceus-Poison", |
|
num: 783, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
pokeball: { |
|
name: "Poke Ball", |
|
spritenum: 345, |
|
num: 4, |
|
gen: 1, |
|
isPokeball: true |
|
}, |
|
pomegberry: { |
|
name: "Pomeg Berry", |
|
spritenum: 351, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Ice" |
|
}, |
|
onEat: false, |
|
num: 169, |
|
gen: 3 |
|
}, |
|
poweranklet: { |
|
name: "Power Anklet", |
|
spritenum: 354, |
|
ignoreKlutz: true, |
|
fling: { |
|
basePower: 70 |
|
}, |
|
onModifySpe(spe) { |
|
return this.chainModify(0.5); |
|
}, |
|
num: 293, |
|
gen: 4 |
|
}, |
|
powerband: { |
|
name: "Power Band", |
|
spritenum: 355, |
|
ignoreKlutz: true, |
|
fling: { |
|
basePower: 70 |
|
}, |
|
onModifySpe(spe) { |
|
return this.chainModify(0.5); |
|
}, |
|
num: 292, |
|
gen: 4 |
|
}, |
|
powerbelt: { |
|
name: "Power Belt", |
|
spritenum: 356, |
|
ignoreKlutz: true, |
|
fling: { |
|
basePower: 70 |
|
}, |
|
onModifySpe(spe) { |
|
return this.chainModify(0.5); |
|
}, |
|
num: 290, |
|
gen: 4 |
|
}, |
|
powerbracer: { |
|
name: "Power Bracer", |
|
spritenum: 357, |
|
ignoreKlutz: true, |
|
fling: { |
|
basePower: 70 |
|
}, |
|
onModifySpe(spe) { |
|
return this.chainModify(0.5); |
|
}, |
|
num: 289, |
|
gen: 4 |
|
}, |
|
powerherb: { |
|
onChargeMove(pokemon, target, move) { |
|
if (pokemon.useItem()) { |
|
this.debug("power herb - remove charge turn for " + move.id); |
|
this.attrLastMove("[still]"); |
|
this.addMove("-anim", pokemon, move.name, target); |
|
return false; |
|
} |
|
}, |
|
name: "Power Herb", |
|
spritenum: 358, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
num: 271, |
|
gen: 4 |
|
}, |
|
powerlens: { |
|
name: "Power Lens", |
|
spritenum: 359, |
|
ignoreKlutz: true, |
|
fling: { |
|
basePower: 70 |
|
}, |
|
onModifySpe(spe) { |
|
return this.chainModify(0.5); |
|
}, |
|
num: 291, |
|
gen: 4 |
|
}, |
|
powerweight: { |
|
name: "Power Weight", |
|
spritenum: 360, |
|
ignoreKlutz: true, |
|
fling: { |
|
basePower: 70 |
|
}, |
|
onModifySpe(spe) { |
|
return this.chainModify(0.5); |
|
}, |
|
num: 294, |
|
gen: 4 |
|
}, |
|
premierball: { |
|
name: "Premier Ball", |
|
spritenum: 363, |
|
num: 12, |
|
gen: 3, |
|
isPokeball: true |
|
}, |
|
primariumz: { |
|
name: "Primarium Z", |
|
spritenum: 652, |
|
onTakeItem: false, |
|
zMove: "Oceanic Operetta", |
|
zMoveFrom: "Sparkling Aria", |
|
itemUser: ["Primarina"], |
|
num: 800, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
prismscale: { |
|
name: "Prism Scale", |
|
spritenum: 365, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 537, |
|
gen: 5 |
|
}, |
|
protectivepads: { |
|
name: "Protective Pads", |
|
spritenum: 663, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
|
|
num: 880, |
|
gen: 7 |
|
}, |
|
protector: { |
|
name: "Protector", |
|
spritenum: 367, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 321, |
|
gen: 4 |
|
}, |
|
psychicgem: { |
|
name: "Psychic Gem", |
|
spritenum: 369, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Psychic" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 557, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
psychicmemory: { |
|
name: "Psychic Memory", |
|
spritenum: 680, |
|
onMemory: "Psychic", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Psychic", |
|
itemUser: ["Silvally-Psychic"], |
|
num: 916, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
psychicseed: { |
|
name: "Psychic Seed", |
|
spritenum: 665, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onSwitchInPriority: -1, |
|
onStart(pokemon) { |
|
if (!pokemon.ignoringItem() && this.field.isTerrain("psychicterrain")) { |
|
pokemon.useItem(); |
|
} |
|
}, |
|
onTerrainChange(pokemon) { |
|
if (this.field.isTerrain("psychicterrain")) { |
|
pokemon.useItem(); |
|
} |
|
}, |
|
boosts: { |
|
spd: 1 |
|
}, |
|
num: 882, |
|
gen: 7 |
|
}, |
|
psychiumz: { |
|
name: "Psychium Z", |
|
spritenum: 641, |
|
onPlate: "Psychic", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Psychic", |
|
forcedForme: "Arceus-Psychic", |
|
num: 786, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
punchingglove: { |
|
name: "Punching Glove", |
|
spritenum: 749, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onBasePowerPriority: 23, |
|
onBasePower(basePower, attacker, defender, move) { |
|
if (move.flags["punch"]) { |
|
this.debug("Punching Glove boost"); |
|
return this.chainModify([4506, 4096]); |
|
} |
|
}, |
|
onModifyMovePriority: 1, |
|
onModifyMove(move) { |
|
if (move.flags["punch"]) |
|
delete move.flags["contact"]; |
|
}, |
|
num: 1884, |
|
gen: 9 |
|
}, |
|
qualotberry: { |
|
name: "Qualot Berry", |
|
spritenum: 371, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Poison" |
|
}, |
|
onEat: false, |
|
num: 171, |
|
gen: 3 |
|
}, |
|
quickball: { |
|
name: "Quick Ball", |
|
spritenum: 372, |
|
num: 15, |
|
gen: 4, |
|
isPokeball: true |
|
}, |
|
quickclaw: { |
|
onFractionalPriorityPriority: -2, |
|
onFractionalPriority(priority, pokemon, target, move) { |
|
if (move.category === "Status" && pokemon.hasAbility("myceliummight")) |
|
return; |
|
if (priority <= 0 && this.randomChance(1, 5)) { |
|
this.add("-activate", pokemon, "item: Quick Claw"); |
|
return 0.1; |
|
} |
|
}, |
|
name: "Quick Claw", |
|
spritenum: 373, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 217, |
|
gen: 2 |
|
}, |
|
quickpowder: { |
|
name: "Quick Powder", |
|
spritenum: 374, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onModifySpe(spe, pokemon) { |
|
if (pokemon.species.name === "Ditto" && !pokemon.transformed) { |
|
return this.chainModify(2); |
|
} |
|
}, |
|
itemUser: ["Ditto"], |
|
num: 274, |
|
gen: 4, |
|
isNonstandard: "Past" |
|
}, |
|
rabutaberry: { |
|
name: "Rabuta Berry", |
|
spritenum: 375, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Ghost" |
|
}, |
|
onEat: false, |
|
num: 177, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
rarebone: { |
|
name: "Rare Bone", |
|
spritenum: 379, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 106, |
|
gen: 4 |
|
}, |
|
rawstberry: { |
|
name: "Rawst Berry", |
|
spritenum: 381, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Grass" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status === "brn") { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
if (pokemon.status === "brn") { |
|
pokemon.cureStatus(); |
|
} |
|
}, |
|
num: 152, |
|
gen: 3 |
|
}, |
|
razorclaw: { |
|
name: "Razor Claw", |
|
spritenum: 382, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
onModifyCritRatio(critRatio) { |
|
return critRatio + 1; |
|
}, |
|
num: 326, |
|
gen: 4 |
|
}, |
|
razorfang: { |
|
name: "Razor Fang", |
|
spritenum: 383, |
|
fling: { |
|
basePower: 30, |
|
volatileStatus: "flinch" |
|
}, |
|
onModifyMovePriority: -1, |
|
onModifyMove(move) { |
|
if (move.category !== "Status") { |
|
if (!move.secondaries) |
|
move.secondaries = []; |
|
for (const secondary of move.secondaries) { |
|
if (secondary.volatileStatus === "flinch") |
|
return; |
|
} |
|
move.secondaries.push({ |
|
chance: 10, |
|
volatileStatus: "flinch" |
|
}); |
|
} |
|
}, |
|
num: 327, |
|
gen: 4 |
|
}, |
|
razzberry: { |
|
name: "Razz Berry", |
|
spritenum: 384, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Steel" |
|
}, |
|
onEat: false, |
|
num: 164, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
reapercloth: { |
|
name: "Reaper Cloth", |
|
spritenum: 385, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
num: 325, |
|
gen: 4 |
|
}, |
|
redcard: { |
|
name: "Red Card", |
|
spritenum: 387, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onAfterMoveSecondary(target, source, move) { |
|
if (source && source !== target && source.hp && target.hp && move && move.category !== "Status") { |
|
if (!source.isActive || !this.canSwitch(source.side) || source.forceSwitchFlag || target.forceSwitchFlag) { |
|
return; |
|
} |
|
if (target.useItem(source)) { |
|
if (this.runEvent("DragOut", source, target, move)) { |
|
source.forceSwitchFlag = true; |
|
} |
|
} |
|
} |
|
}, |
|
num: 542, |
|
gen: 5 |
|
}, |
|
redorb: { |
|
name: "Red Orb", |
|
spritenum: 390, |
|
onSwitchInPriority: -1, |
|
onSwitchIn(pokemon) { |
|
if (pokemon.isActive && pokemon.baseSpecies.name === "Groudon" && !pokemon.transformed) { |
|
pokemon.formeChange("Groudon-Primal", this.effect, true); |
|
} |
|
}, |
|
onTakeItem(item, source) { |
|
if (source.baseSpecies.baseSpecies === "Groudon") |
|
return false; |
|
return true; |
|
}, |
|
itemUser: ["Groudon"], |
|
isPrimalOrb: true, |
|
num: 534, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
repeatball: { |
|
name: "Repeat Ball", |
|
spritenum: 401, |
|
num: 9, |
|
gen: 3, |
|
isPokeball: true |
|
}, |
|
ribbonsweet: { |
|
name: "Ribbon Sweet", |
|
spritenum: 710, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
num: 1115, |
|
gen: 8 |
|
}, |
|
rindoberry: { |
|
name: "Rindo Berry", |
|
spritenum: 409, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Grass" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Grass" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 187, |
|
gen: 4 |
|
}, |
|
ringtarget: { |
|
name: "Ring Target", |
|
spritenum: 410, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onNegateImmunity: false, |
|
num: 543, |
|
gen: 5 |
|
}, |
|
rockgem: { |
|
name: "Rock Gem", |
|
spritenum: 415, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Rock" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 559, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
rockincense: { |
|
name: "Rock Incense", |
|
spritenum: 416, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Rock") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 315, |
|
gen: 4, |
|
isNonstandard: "Past" |
|
}, |
|
rockmemory: { |
|
name: "Rock Memory", |
|
spritenum: 672, |
|
onMemory: "Rock", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Rock", |
|
itemUser: ["Silvally-Rock"], |
|
num: 908, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
rockiumz: { |
|
name: "Rockium Z", |
|
spritenum: 643, |
|
onPlate: "Rock", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Rock", |
|
forcedForme: "Arceus-Rock", |
|
num: 788, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
rockyhelmet: { |
|
name: "Rocky Helmet", |
|
spritenum: 417, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
onDamagingHitOrder: 2, |
|
onDamagingHit(damage, target, source, move) { |
|
if (this.checkMoveMakesContact(move, source, target)) { |
|
this.damage(source.baseMaxhp / 6, source, target); |
|
} |
|
}, |
|
num: 540, |
|
gen: 5 |
|
}, |
|
roomservice: { |
|
name: "Room Service", |
|
spritenum: 717, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
onSwitchInPriority: -1, |
|
onStart(pokemon) { |
|
if (!pokemon.ignoringItem() && this.field.getPseudoWeather("trickroom")) { |
|
pokemon.useItem(); |
|
} |
|
}, |
|
onAnyPseudoWeatherChange() { |
|
const pokemon = this.effectState.target; |
|
if (this.field.getPseudoWeather("trickroom")) { |
|
pokemon.useItem(pokemon); |
|
} |
|
}, |
|
boosts: { |
|
spe: -1 |
|
}, |
|
num: 1122, |
|
gen: 8 |
|
}, |
|
rootfossil: { |
|
name: "Root Fossil", |
|
spritenum: 418, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 99, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
roseincense: { |
|
name: "Rose Incense", |
|
spritenum: 419, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Grass") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 318, |
|
gen: 4, |
|
isNonstandard: "Past" |
|
}, |
|
roseliberry: { |
|
name: "Roseli Berry", |
|
spritenum: 603, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Fairy" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Fairy" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 686, |
|
gen: 6 |
|
}, |
|
rowapberry: { |
|
name: "Rowap Berry", |
|
spritenum: 420, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Dark" |
|
}, |
|
onDamagingHit(damage, target, source, move) { |
|
if (move.category === "Special" && source.hp && source.isActive && !source.hasAbility("magicguard")) { |
|
if (target.eatItem()) { |
|
this.damage(source.baseMaxhp / (target.hasAbility("ripen") ? 4 : 8), source, target); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 212, |
|
gen: 4 |
|
}, |
|
rustedshield: { |
|
name: "Rusted Shield", |
|
spritenum: 699, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 889 || pokemon.baseSpecies.num === 889) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
itemUser: ["Zamazenta-Crowned"], |
|
num: 1104, |
|
gen: 8 |
|
}, |
|
rustedsword: { |
|
name: "Rusted Sword", |
|
spritenum: 698, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 888 || pokemon.baseSpecies.num === 888) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
itemUser: ["Zacian-Crowned"], |
|
num: 1103, |
|
gen: 8 |
|
}, |
|
sablenite: { |
|
name: "Sablenite", |
|
spritenum: 614, |
|
megaStone: "Sableye-Mega", |
|
megaEvolves: "Sableye", |
|
itemUser: ["Sableye"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 754, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
sachet: { |
|
name: "Sachet", |
|
spritenum: 691, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 647, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
safariball: { |
|
name: "Safari Ball", |
|
spritenum: 425, |
|
num: 5, |
|
gen: 1, |
|
isPokeball: true |
|
}, |
|
safetygoggles: { |
|
name: "Safety Goggles", |
|
spritenum: 604, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
onImmunity(type, pokemon) { |
|
if (type === "sandstorm" || type === "hail" || type === "powder") |
|
return false; |
|
}, |
|
onTryHit(pokemon, source, move) { |
|
if (move.flags["powder"] && pokemon !== source && this.dex.getImmunity("powder", pokemon)) { |
|
this.add("-activate", pokemon, "item: Safety Goggles", move.name); |
|
return null; |
|
} |
|
}, |
|
num: 650, |
|
gen: 6 |
|
}, |
|
sailfossil: { |
|
name: "Sail Fossil", |
|
spritenum: 695, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 711, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
salacberry: { |
|
name: "Salac Berry", |
|
spritenum: 426, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Fighting" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
this.boost({ spe: 1 }); |
|
}, |
|
num: 203, |
|
gen: 3 |
|
}, |
|
salamencite: { |
|
name: "Salamencite", |
|
spritenum: 627, |
|
megaStone: "Salamence-Mega", |
|
megaEvolves: "Salamence", |
|
itemUser: ["Salamence"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 769, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
sceptilite: { |
|
name: "Sceptilite", |
|
spritenum: 613, |
|
megaStone: "Sceptile-Mega", |
|
megaEvolves: "Sceptile", |
|
itemUser: ["Sceptile"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 753, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
scizorite: { |
|
name: "Scizorite", |
|
spritenum: 605, |
|
megaStone: "Scizor-Mega", |
|
megaEvolves: "Scizor", |
|
itemUser: ["Scizor"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 670, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
scopelens: { |
|
name: "Scope Lens", |
|
spritenum: 429, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onModifyCritRatio(critRatio) { |
|
return critRatio + 1; |
|
}, |
|
num: 232, |
|
gen: 2 |
|
}, |
|
seaincense: { |
|
name: "Sea Incense", |
|
spritenum: 430, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Water") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 254, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
sharpbeak: { |
|
name: "Sharp Beak", |
|
spritenum: 436, |
|
fling: { |
|
basePower: 50 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && move.type === "Flying") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 244, |
|
gen: 2 |
|
}, |
|
sharpedonite: { |
|
name: "Sharpedonite", |
|
spritenum: 619, |
|
megaStone: "Sharpedo-Mega", |
|
megaEvolves: "Sharpedo", |
|
itemUser: ["Sharpedo"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 759, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
shedshell: { |
|
name: "Shed Shell", |
|
spritenum: 437, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onTrapPokemonPriority: -10, |
|
onTrapPokemon(pokemon) { |
|
pokemon.trapped = pokemon.maybeTrapped = false; |
|
}, |
|
num: 295, |
|
gen: 4 |
|
}, |
|
shellbell: { |
|
name: "Shell Bell", |
|
spritenum: 438, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onAfterMoveSecondarySelfPriority: -1, |
|
onAfterMoveSecondarySelf(pokemon, target, move) { |
|
if (move.totalDamage && !pokemon.forceSwitchFlag) { |
|
this.heal(move.totalDamage / 8, pokemon); |
|
} |
|
}, |
|
num: 253, |
|
gen: 3 |
|
}, |
|
shinystone: { |
|
name: "Shiny Stone", |
|
spritenum: 439, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 107, |
|
gen: 4 |
|
}, |
|
shockdrive: { |
|
name: "Shock Drive", |
|
spritenum: 442, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 649 || pokemon.baseSpecies.num === 649) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
onDrive: "Electric", |
|
forcedForme: "Genesect-Shock", |
|
itemUser: ["Genesect-Shock"], |
|
num: 117, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
shucaberry: { |
|
name: "Shuca Berry", |
|
spritenum: 443, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Ground" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Ground" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 191, |
|
gen: 4 |
|
}, |
|
silkscarf: { |
|
name: "Silk Scarf", |
|
spritenum: 444, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Normal") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 251, |
|
gen: 3 |
|
}, |
|
silverpowder: { |
|
name: "Silver Powder", |
|
spritenum: 447, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Bug") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 222, |
|
gen: 2 |
|
}, |
|
sitrusberry: { |
|
name: "Sitrus Berry", |
|
spritenum: 448, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Psychic" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 2) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onTryEatItem(item, pokemon) { |
|
if (!this.runEvent("TryHeal", pokemon, null, this.effect, pokemon.baseMaxhp / 4)) |
|
return false; |
|
}, |
|
onEat(pokemon) { |
|
this.heal(pokemon.baseMaxhp / 4); |
|
}, |
|
num: 158, |
|
gen: 3 |
|
}, |
|
skullfossil: { |
|
name: "Skull Fossil", |
|
spritenum: 449, |
|
fling: { |
|
basePower: 100 |
|
}, |
|
num: 105, |
|
gen: 4, |
|
isNonstandard: "Past" |
|
}, |
|
skyplate: { |
|
name: "Sky Plate", |
|
spritenum: 450, |
|
onPlate: "Flying", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Flying") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Flying", |
|
num: 306, |
|
gen: 4 |
|
}, |
|
slowbronite: { |
|
name: "Slowbronite", |
|
spritenum: 620, |
|
megaStone: "Slowbro-Mega", |
|
megaEvolves: "Slowbro", |
|
itemUser: ["Slowbro"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 760, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
smoothrock: { |
|
name: "Smooth Rock", |
|
spritenum: 453, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
num: 283, |
|
gen: 4 |
|
}, |
|
snorliumz: { |
|
name: "Snorlium Z", |
|
spritenum: 656, |
|
onTakeItem: false, |
|
zMove: "Pulverizing Pancake", |
|
zMoveFrom: "Giga Impact", |
|
itemUser: ["Snorlax"], |
|
num: 804, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
snowball: { |
|
name: "Snowball", |
|
spritenum: 606, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onDamagingHit(damage, target, source, move) { |
|
if (move.type === "Ice") { |
|
target.useItem(); |
|
} |
|
}, |
|
boosts: { |
|
atk: 1 |
|
}, |
|
num: 649, |
|
gen: 6 |
|
}, |
|
softsand: { |
|
name: "Soft Sand", |
|
spritenum: 456, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Ground") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 237, |
|
gen: 2 |
|
}, |
|
solganiumz: { |
|
name: "Solganium Z", |
|
spritenum: 685, |
|
onTakeItem: false, |
|
zMove: "Searing Sunraze Smash", |
|
zMoveFrom: "Sunsteel Strike", |
|
itemUser: ["Solgaleo", "Necrozma-Dusk-Mane"], |
|
num: 921, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
souldew: { |
|
name: "Soul Dew", |
|
spritenum: 459, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move && (user.baseSpecies.num === 380 || user.baseSpecies.num === 381) && (move.type === "Psychic" || move.type === "Dragon")) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
itemUser: ["Latios", "Latias"], |
|
num: 225, |
|
gen: 3 |
|
}, |
|
spelltag: { |
|
name: "Spell Tag", |
|
spritenum: 461, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Ghost") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 247, |
|
gen: 2 |
|
}, |
|
spelonberry: { |
|
name: "Spelon Berry", |
|
spritenum: 462, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Dark" |
|
}, |
|
onEat: false, |
|
num: 179, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
splashplate: { |
|
name: "Splash Plate", |
|
spritenum: 463, |
|
onPlate: "Water", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Water") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Water", |
|
num: 299, |
|
gen: 4 |
|
}, |
|
spookyplate: { |
|
name: "Spooky Plate", |
|
spritenum: 464, |
|
onPlate: "Ghost", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Ghost") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Ghost", |
|
num: 310, |
|
gen: 4 |
|
}, |
|
sportball: { |
|
name: "Sport Ball", |
|
spritenum: 465, |
|
num: 499, |
|
gen: 2, |
|
isPokeball: true |
|
}, |
|
starfberry: { |
|
name: "Starf Berry", |
|
spritenum: 472, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Psychic" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
const stats = []; |
|
let stat; |
|
for (stat in pokemon.boosts) { |
|
if (stat !== "accuracy" && stat !== "evasion" && pokemon.boosts[stat] < 6) { |
|
stats.push(stat); |
|
} |
|
} |
|
if (stats.length) { |
|
const randomStat = this.sample(stats); |
|
const boost = {}; |
|
boost[randomStat] = 2; |
|
this.boost(boost); |
|
} |
|
}, |
|
num: 207, |
|
gen: 3 |
|
}, |
|
starsweet: { |
|
name: "Star Sweet", |
|
spritenum: 709, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
num: 1114, |
|
gen: 8 |
|
}, |
|
steelixite: { |
|
name: "Steelixite", |
|
spritenum: 621, |
|
megaStone: "Steelix-Mega", |
|
megaEvolves: "Steelix", |
|
itemUser: ["Steelix"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 761, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
steelgem: { |
|
name: "Steel Gem", |
|
spritenum: 473, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status") |
|
return; |
|
if (move.type === "Steel" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 563, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
steelmemory: { |
|
name: "Steel Memory", |
|
spritenum: 675, |
|
onMemory: "Steel", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Steel", |
|
itemUser: ["Silvally-Steel"], |
|
num: 911, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
steeliumz: { |
|
name: "Steelium Z", |
|
spritenum: 647, |
|
onPlate: "Steel", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Steel", |
|
forcedForme: "Arceus-Steel", |
|
num: 792, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
stick: { |
|
name: "Stick", |
|
fling: { |
|
basePower: 60 |
|
}, |
|
spritenum: 475, |
|
onModifyCritRatio(critRatio, user) { |
|
if (this.toID(user.baseSpecies.baseSpecies) === "farfetchd") { |
|
return critRatio + 2; |
|
} |
|
}, |
|
itemUser: ["Farfetch\u2019d"], |
|
num: 259, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
stickybarb: { |
|
name: "Sticky Barb", |
|
spritenum: 476, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
onResidualOrder: 28, |
|
onResidualSubOrder: 3, |
|
onResidual(pokemon) { |
|
this.damage(pokemon.baseMaxhp / 8); |
|
}, |
|
onHit(target, source, move) { |
|
if (source && source !== target && !source.item && move && this.checkMoveMakesContact(move, source, target)) { |
|
const barb = target.takeItem(); |
|
if (!barb) |
|
return; |
|
source.setItem(barb); |
|
} |
|
}, |
|
num: 288, |
|
gen: 4 |
|
}, |
|
stoneplate: { |
|
name: "Stone Plate", |
|
spritenum: 477, |
|
onPlate: "Rock", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Rock") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Rock", |
|
num: 309, |
|
gen: 4 |
|
}, |
|
strangeball: { |
|
name: "Strange Ball", |
|
spritenum: 308, |
|
num: 1785, |
|
gen: 8, |
|
isPokeball: true, |
|
isNonstandard: "Unobtainable" |
|
}, |
|
strawberrysweet: { |
|
name: "Strawberry Sweet", |
|
spritenum: 704, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
num: 1109, |
|
gen: 8 |
|
}, |
|
sunstone: { |
|
name: "Sun Stone", |
|
spritenum: 480, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 80, |
|
gen: 2 |
|
}, |
|
swampertite: { |
|
name: "Swampertite", |
|
spritenum: 612, |
|
megaStone: "Swampert-Mega", |
|
megaEvolves: "Swampert", |
|
itemUser: ["Swampert"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 752, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
sweetapple: { |
|
name: "Sweet Apple", |
|
spritenum: 711, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 1116, |
|
gen: 8 |
|
}, |
|
syrupyapple: { |
|
name: "Syrupy Apple", |
|
spritenum: 755, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 2402, |
|
gen: 9 |
|
}, |
|
tamatoberry: { |
|
name: "Tamato Berry", |
|
spritenum: 486, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Psychic" |
|
}, |
|
onEat: false, |
|
num: 174, |
|
gen: 3 |
|
}, |
|
tangaberry: { |
|
name: "Tanga Berry", |
|
spritenum: 487, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Bug" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Bug" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 194, |
|
gen: 4 |
|
}, |
|
tapuniumz: { |
|
name: "Tapunium Z", |
|
spritenum: 653, |
|
onTakeItem: false, |
|
zMove: "Guardian of Alola", |
|
zMoveFrom: "Nature's Madness", |
|
itemUser: ["Tapu Koko", "Tapu Lele", "Tapu Bulu", "Tapu Fini"], |
|
num: 801, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
tartapple: { |
|
name: "Tart Apple", |
|
spritenum: 712, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 1117, |
|
gen: 8 |
|
}, |
|
terrainextender: { |
|
name: "Terrain Extender", |
|
spritenum: 662, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
num: 879, |
|
gen: 7 |
|
}, |
|
thickclub: { |
|
name: "Thick Club", |
|
spritenum: 491, |
|
fling: { |
|
basePower: 90 |
|
}, |
|
onModifyAtkPriority: 1, |
|
onModifyAtk(atk, pokemon) { |
|
if (pokemon.baseSpecies.baseSpecies === "Cubone" || pokemon.baseSpecies.baseSpecies === "Marowak") { |
|
return this.chainModify(2); |
|
} |
|
}, |
|
itemUser: ["Marowak", "Marowak-Alola", "Marowak-Alola-Totem", "Cubone"], |
|
num: 258, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
throatspray: { |
|
name: "Throat Spray", |
|
spritenum: 713, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onAfterMoveSecondarySelf(target, source, move) { |
|
if (move.flags["sound"]) { |
|
target.useItem(); |
|
} |
|
}, |
|
boosts: { |
|
spa: 1 |
|
}, |
|
num: 1118, |
|
gen: 8 |
|
}, |
|
thunderstone: { |
|
name: "Thunder Stone", |
|
spritenum: 492, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 83, |
|
gen: 1 |
|
}, |
|
timerball: { |
|
name: "Timer Ball", |
|
spritenum: 494, |
|
num: 10, |
|
gen: 3, |
|
isPokeball: true |
|
}, |
|
toxicorb: { |
|
name: "Toxic Orb", |
|
spritenum: 515, |
|
fling: { |
|
basePower: 30, |
|
status: "tox" |
|
}, |
|
onResidualOrder: 28, |
|
onResidualSubOrder: 3, |
|
onResidual(pokemon) { |
|
pokemon.trySetStatus("tox", pokemon); |
|
}, |
|
num: 272, |
|
gen: 4 |
|
}, |
|
toxicplate: { |
|
name: "Toxic Plate", |
|
spritenum: 516, |
|
onPlate: "Poison", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Poison") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Poison", |
|
num: 304, |
|
gen: 4 |
|
}, |
|
tr00: { |
|
name: "TR00", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 721, |
|
num: 1130, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr01: { |
|
name: "TR01", |
|
fling: { |
|
basePower: 85 |
|
}, |
|
spritenum: 721, |
|
num: 1131, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr02: { |
|
name: "TR02", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 730, |
|
num: 1132, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr03: { |
|
name: "TR03", |
|
fling: { |
|
basePower: 110 |
|
}, |
|
spritenum: 731, |
|
num: 1133, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr04: { |
|
name: "TR04", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 731, |
|
num: 1134, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr05: { |
|
name: "TR05", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 735, |
|
num: 1135, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr06: { |
|
name: "TR06", |
|
fling: { |
|
basePower: 110 |
|
}, |
|
spritenum: 735, |
|
num: 1136, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr07: { |
|
name: "TR07", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 722, |
|
num: 1137, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr08: { |
|
name: "TR08", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 733, |
|
num: 1138, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr09: { |
|
name: "TR09", |
|
fling: { |
|
basePower: 110 |
|
}, |
|
spritenum: 733, |
|
num: 1139, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr10: { |
|
name: "TR10", |
|
fling: { |
|
basePower: 100 |
|
}, |
|
spritenum: 725, |
|
num: 1140, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr11: { |
|
name: "TR11", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 734, |
|
num: 1141, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr12: { |
|
name: "TR12", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 734, |
|
num: 1142, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr13: { |
|
name: "TR13", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 721, |
|
num: 1143, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr14: { |
|
name: "TR14", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 721, |
|
num: 1144, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr15: { |
|
name: "TR15", |
|
fling: { |
|
basePower: 110 |
|
}, |
|
spritenum: 730, |
|
num: 1145, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr16: { |
|
name: "TR16", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 731, |
|
num: 1146, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr17: { |
|
name: "TR17", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 734, |
|
num: 1147, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr18: { |
|
name: "TR18", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 727, |
|
num: 1148, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr19: { |
|
name: "TR19", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 721, |
|
num: 1149, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr20: { |
|
name: "TR20", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 721, |
|
num: 1150, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr21: { |
|
name: "TR21", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 722, |
|
num: 1151, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr22: { |
|
name: "TR22", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 724, |
|
num: 1152, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr23: { |
|
name: "TR23", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 725, |
|
num: 1153, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr24: { |
|
name: "TR24", |
|
fling: { |
|
basePower: 120 |
|
}, |
|
spritenum: 736, |
|
num: 1154, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr25: { |
|
name: "TR25", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 734, |
|
num: 1155, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr26: { |
|
name: "TR26", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 721, |
|
num: 1156, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr27: { |
|
name: "TR27", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 721, |
|
num: 1157, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr28: { |
|
name: "TR28", |
|
fling: { |
|
basePower: 120 |
|
}, |
|
spritenum: 727, |
|
num: 1158, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr29: { |
|
name: "TR29", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 721, |
|
num: 1159, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr30: { |
|
name: "TR30", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 721, |
|
num: 1160, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr31: { |
|
name: "TR31", |
|
fling: { |
|
basePower: 100 |
|
}, |
|
spritenum: 729, |
|
num: 1161, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr32: { |
|
name: "TR32", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 737, |
|
num: 1162, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr33: { |
|
name: "TR33", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 728, |
|
num: 1163, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr34: { |
|
name: "TR34", |
|
fling: { |
|
basePower: 120 |
|
}, |
|
spritenum: 734, |
|
num: 1164, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr35: { |
|
name: "TR35", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 721, |
|
num: 1165, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr36: { |
|
name: "TR36", |
|
fling: { |
|
basePower: 95 |
|
}, |
|
spritenum: 730, |
|
num: 1166, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr37: { |
|
name: "TR37", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 737, |
|
num: 1167, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr38: { |
|
name: "TR38", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 734, |
|
num: 1168, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr39: { |
|
name: "TR39", |
|
fling: { |
|
basePower: 120 |
|
}, |
|
spritenum: 722, |
|
num: 1169, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr40: { |
|
name: "TR40", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 734, |
|
num: 1170, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr41: { |
|
name: "TR41", |
|
fling: { |
|
basePower: 85 |
|
}, |
|
spritenum: 730, |
|
num: 1171, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr42: { |
|
name: "TR42", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 721, |
|
num: 1172, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr43: { |
|
name: "TR43", |
|
fling: { |
|
basePower: 130 |
|
}, |
|
spritenum: 730, |
|
num: 1173, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr44: { |
|
name: "TR44", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 734, |
|
num: 1174, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr45: { |
|
name: "TR45", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 731, |
|
num: 1175, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr46: { |
|
name: "TR46", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 729, |
|
num: 1176, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr47: { |
|
name: "TR47", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 736, |
|
num: 1177, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr48: { |
|
name: "TR48", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 722, |
|
num: 1178, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr49: { |
|
name: "TR49", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 734, |
|
num: 1179, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr50: { |
|
name: "TR50", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 732, |
|
num: 1180, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr51: { |
|
name: "TR51", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 736, |
|
num: 1181, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr52: { |
|
name: "TR52", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 729, |
|
num: 1182, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr53: { |
|
name: "TR53", |
|
fling: { |
|
basePower: 120 |
|
}, |
|
spritenum: 722, |
|
num: 1183, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr54: { |
|
name: "TR54", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 724, |
|
num: 1184, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr55: { |
|
name: "TR55", |
|
fling: { |
|
basePower: 120 |
|
}, |
|
spritenum: 730, |
|
num: 1185, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr56: { |
|
name: "TR56", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 722, |
|
num: 1186, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr57: { |
|
name: "TR57", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 724, |
|
num: 1187, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr58: { |
|
name: "TR58", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 737, |
|
num: 1188, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr59: { |
|
name: "TR59", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 732, |
|
num: 1189, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr60: { |
|
name: "TR60", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 727, |
|
num: 1190, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr61: { |
|
name: "TR61", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 727, |
|
num: 1191, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr62: { |
|
name: "TR62", |
|
fling: { |
|
basePower: 85 |
|
}, |
|
spritenum: 736, |
|
num: 1192, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr63: { |
|
name: "TR63", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 726, |
|
num: 1193, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr64: { |
|
name: "TR64", |
|
fling: { |
|
basePower: 120 |
|
}, |
|
spritenum: 722, |
|
num: 1194, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr65: { |
|
name: "TR65", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 732, |
|
num: 1195, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr66: { |
|
name: "TR66", |
|
fling: { |
|
basePower: 120 |
|
}, |
|
spritenum: 723, |
|
num: 1196, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr67: { |
|
name: "TR67", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 725, |
|
num: 1197, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr68: { |
|
name: "TR68", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 737, |
|
num: 1198, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr69: { |
|
name: "TR69", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 734, |
|
num: 1199, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr70: { |
|
name: "TR70", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 729, |
|
num: 1200, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr71: { |
|
name: "TR71", |
|
fling: { |
|
basePower: 130 |
|
}, |
|
spritenum: 732, |
|
num: 1201, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr72: { |
|
name: "TR72", |
|
fling: { |
|
basePower: 120 |
|
}, |
|
spritenum: 732, |
|
num: 1202, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr73: { |
|
name: "TR73", |
|
fling: { |
|
basePower: 120 |
|
}, |
|
spritenum: 724, |
|
num: 1203, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr74: { |
|
name: "TR74", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 729, |
|
num: 1204, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr75: { |
|
name: "TR75", |
|
fling: { |
|
basePower: 100 |
|
}, |
|
spritenum: 726, |
|
num: 1205, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr76: { |
|
name: "TR76", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 726, |
|
num: 1206, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr77: { |
|
name: "TR77", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 732, |
|
num: 1207, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr78: { |
|
name: "TR78", |
|
fling: { |
|
basePower: 95 |
|
}, |
|
spritenum: 724, |
|
num: 1208, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr79: { |
|
name: "TR79", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 729, |
|
num: 1209, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr80: { |
|
name: "TR80", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 733, |
|
num: 1210, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr81: { |
|
name: "TR81", |
|
fling: { |
|
basePower: 95 |
|
}, |
|
spritenum: 737, |
|
num: 1211, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr82: { |
|
name: "TR82", |
|
fling: { |
|
basePower: 20 |
|
}, |
|
spritenum: 734, |
|
num: 1212, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr83: { |
|
name: "TR83", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 734, |
|
num: 1213, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr84: { |
|
name: "TR84", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 731, |
|
num: 1214, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr85: { |
|
name: "TR85", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 721, |
|
num: 1215, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr86: { |
|
name: "TR86", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 733, |
|
num: 1216, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr87: { |
|
name: "TR87", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 725, |
|
num: 1217, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr88: { |
|
name: "TR88", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 730, |
|
num: 1218, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr89: { |
|
name: "TR89", |
|
fling: { |
|
basePower: 110 |
|
}, |
|
spritenum: 723, |
|
num: 1219, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr90: { |
|
name: "TR90", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 738, |
|
num: 1220, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr91: { |
|
name: "TR91", |
|
fling: { |
|
basePower: 10 |
|
}, |
|
spritenum: 724, |
|
num: 1221, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr92: { |
|
name: "TR92", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 738, |
|
num: 1222, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr93: { |
|
name: "TR93", |
|
fling: { |
|
basePower: 85 |
|
}, |
|
spritenum: 737, |
|
num: 1223, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr94: { |
|
name: "TR94", |
|
fling: { |
|
basePower: 95 |
|
}, |
|
spritenum: 725, |
|
num: 1224, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr95: { |
|
name: "TR95", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 737, |
|
num: 1225, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr96: { |
|
name: "TR96", |
|
fling: { |
|
basePower: 90 |
|
}, |
|
spritenum: 727, |
|
num: 1226, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr97: { |
|
name: "TR97", |
|
fling: { |
|
basePower: 85 |
|
}, |
|
spritenum: 734, |
|
num: 1227, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr98: { |
|
name: "TR98", |
|
fling: { |
|
basePower: 85 |
|
}, |
|
spritenum: 731, |
|
num: 1228, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
tr99: { |
|
name: "TR99", |
|
fling: { |
|
basePower: 80 |
|
}, |
|
spritenum: 722, |
|
num: 1229, |
|
gen: 8, |
|
isNonstandard: "Past" |
|
}, |
|
twistedspoon: { |
|
name: "Twisted Spoon", |
|
spritenum: 520, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Psychic") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 248, |
|
gen: 2 |
|
}, |
|
tyranitarite: { |
|
name: "Tyranitarite", |
|
spritenum: 607, |
|
megaStone: "Tyranitar-Mega", |
|
megaEvolves: "Tyranitar", |
|
itemUser: ["Tyranitar"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 669, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
ultraball: { |
|
name: "Ultra Ball", |
|
spritenum: 521, |
|
num: 2, |
|
gen: 1, |
|
isPokeball: true |
|
}, |
|
ultranecroziumz: { |
|
name: "Ultranecrozium Z", |
|
spritenum: 687, |
|
onTakeItem: false, |
|
zMove: "Light That Burns the Sky", |
|
zMoveFrom: "Photon Geyser", |
|
itemUser: ["Necrozma-Ultra"], |
|
num: 923, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
unremarkableteacup: { |
|
name: "Unremarkable Teacup", |
|
spritenum: 756, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 2403, |
|
gen: 9 |
|
}, |
|
upgrade: { |
|
name: "Up-Grade", |
|
spritenum: 523, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 252, |
|
gen: 2 |
|
}, |
|
utilityumbrella: { |
|
name: "Utility Umbrella", |
|
spritenum: 718, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
|
|
onStart(pokemon) { |
|
if (!pokemon.ignoringItem()) |
|
return; |
|
if (["sunnyday", "raindance", "desolateland", "primordialsea"].includes(this.field.effectiveWeather())) { |
|
this.runEvent("WeatherChange", pokemon, pokemon, this.effect); |
|
} |
|
}, |
|
onUpdate(pokemon) { |
|
if (!this.effectState.inactive) |
|
return; |
|
this.effectState.inactive = false; |
|
if (["sunnyday", "raindance", "desolateland", "primordialsea"].includes(this.field.effectiveWeather())) { |
|
this.runEvent("WeatherChange", pokemon, pokemon, this.effect); |
|
} |
|
}, |
|
onEnd(pokemon) { |
|
if (["sunnyday", "raindance", "desolateland", "primordialsea"].includes(this.field.effectiveWeather())) { |
|
this.runEvent("WeatherChange", pokemon, pokemon, this.effect); |
|
} |
|
this.effectState.inactive = true; |
|
}, |
|
num: 1123, |
|
gen: 8 |
|
}, |
|
venusaurite: { |
|
name: "Venusaurite", |
|
spritenum: 608, |
|
megaStone: "Venusaur-Mega", |
|
megaEvolves: "Venusaur", |
|
itemUser: ["Venusaur"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: 659, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
wacanberry: { |
|
name: "Wacan Berry", |
|
spritenum: 526, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Electric" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Electric" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 186, |
|
gen: 4 |
|
}, |
|
watergem: { |
|
name: "Water Gem", |
|
spritenum: 528, |
|
isGem: true, |
|
onSourceTryPrimaryHit(target, source, move) { |
|
if (target === source || move.category === "Status" || move.flags["pledgecombo"]) |
|
return; |
|
if (move.type === "Water" && source.useItem()) { |
|
source.addVolatile("gem"); |
|
} |
|
}, |
|
num: 549, |
|
gen: 5, |
|
isNonstandard: "Past" |
|
}, |
|
watermemory: { |
|
name: "Water Memory", |
|
spritenum: 677, |
|
onMemory: "Water", |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 773 || pokemon.baseSpecies.num === 773) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Silvally-Water", |
|
itemUser: ["Silvally-Water"], |
|
num: 913, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
waterstone: { |
|
name: "Water Stone", |
|
spritenum: 529, |
|
fling: { |
|
basePower: 30 |
|
}, |
|
num: 84, |
|
gen: 1 |
|
}, |
|
wateriumz: { |
|
name: "Waterium Z", |
|
spritenum: 633, |
|
onPlate: "Water", |
|
onTakeItem: false, |
|
zMove: true, |
|
zMoveType: "Water", |
|
forcedForme: "Arceus-Water", |
|
num: 778, |
|
gen: 7, |
|
isNonstandard: "Past" |
|
}, |
|
watmelberry: { |
|
name: "Watmel Berry", |
|
spritenum: 530, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 100, |
|
type: "Fire" |
|
}, |
|
onEat: false, |
|
num: 181, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
waveincense: { |
|
name: "Wave Incense", |
|
spritenum: 531, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Water") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 317, |
|
gen: 4, |
|
isNonstandard: "Past" |
|
}, |
|
weaknesspolicy: { |
|
name: "Weakness Policy", |
|
spritenum: 609, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
onDamagingHit(damage, target, source, move) { |
|
if (!move.damage && !move.damageCallback && target.getMoveHitData(move).typeMod > 0) { |
|
target.useItem(); |
|
} |
|
}, |
|
boosts: { |
|
atk: 2, |
|
spa: 2 |
|
}, |
|
num: 639, |
|
gen: 6 |
|
}, |
|
wellspringmask: { |
|
name: "Wellspring Mask", |
|
spritenum: 759, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (user.baseSpecies.name.startsWith("Ogerpon-Wellspring")) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, source) { |
|
if (source.baseSpecies.baseSpecies === "Ogerpon") |
|
return false; |
|
return true; |
|
}, |
|
forcedForme: "Ogerpon-Wellspring", |
|
itemUser: ["Ogerpon-Wellspring"], |
|
num: 2407, |
|
gen: 9 |
|
}, |
|
wepearberry: { |
|
name: "Wepear Berry", |
|
spritenum: 533, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 90, |
|
type: "Electric" |
|
}, |
|
onEat: false, |
|
num: 167, |
|
gen: 3, |
|
isNonstandard: "Past" |
|
}, |
|
whippeddream: { |
|
name: "Whipped Dream", |
|
spritenum: 692, |
|
fling: { |
|
basePower: 80 |
|
}, |
|
num: 646, |
|
gen: 6, |
|
isNonstandard: "Past" |
|
}, |
|
whiteherb: { |
|
name: "White Herb", |
|
spritenum: 535, |
|
fling: { |
|
basePower: 10, |
|
effect(pokemon) { |
|
let activate = false; |
|
const boosts = {}; |
|
let i; |
|
for (i in pokemon.boosts) { |
|
if (pokemon.boosts[i] < 0) { |
|
activate = true; |
|
boosts[i] = 0; |
|
} |
|
} |
|
if (activate) { |
|
pokemon.setBoost(boosts); |
|
this.add("-clearnegativeboost", pokemon, "[silent]"); |
|
} |
|
} |
|
}, |
|
onAnySwitchInPriority: -2, |
|
onAnySwitchIn() { |
|
this.effect.onUpdate.call(this, this.effectState.target); |
|
}, |
|
onStart(pokemon) { |
|
this.effect.onUpdate.call(this, pokemon); |
|
}, |
|
onUpdate(pokemon) { |
|
let activate = false; |
|
const boosts = {}; |
|
let i; |
|
for (i in pokemon.boosts) { |
|
if (pokemon.boosts[i] < 0) { |
|
activate = true; |
|
boosts[i] = 0; |
|
} |
|
} |
|
if (activate && pokemon.useItem()) { |
|
pokemon.setBoost(boosts); |
|
this.add("-clearnegativeboost", pokemon, "[silent]"); |
|
} |
|
}, |
|
num: 214, |
|
gen: 3 |
|
}, |
|
widelens: { |
|
name: "Wide Lens", |
|
spritenum: 537, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onSourceModifyAccuracyPriority: -2, |
|
onSourceModifyAccuracy(accuracy) { |
|
if (typeof accuracy === "number") { |
|
return this.chainModify([4505, 4096]); |
|
} |
|
}, |
|
num: 265, |
|
gen: 4 |
|
}, |
|
wikiberry: { |
|
name: "Wiki Berry", |
|
spritenum: 538, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Rock" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.hasAbility("gluttony") && pokemon.abilityState.gluttony) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onTryEatItem(item, pokemon) { |
|
if (!this.runEvent("TryHeal", pokemon, null, this.effect, pokemon.baseMaxhp / 3)) |
|
return false; |
|
}, |
|
onEat(pokemon) { |
|
this.heal(pokemon.baseMaxhp / 3); |
|
if (pokemon.getNature().minus === "spa") { |
|
pokemon.addVolatile("confusion"); |
|
} |
|
}, |
|
num: 160, |
|
gen: 3 |
|
}, |
|
wiseglasses: { |
|
name: "Wise Glasses", |
|
spritenum: 539, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onBasePowerPriority: 16, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.category === "Special") { |
|
return this.chainModify([4505, 4096]); |
|
} |
|
}, |
|
num: 267, |
|
gen: 4 |
|
}, |
|
yacheberry: { |
|
name: "Yache Berry", |
|
spritenum: 567, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Ice" |
|
}, |
|
onSourceModifyDamage(damage, source, target, move) { |
|
if (move.type === "Ice" && target.getMoveHitData(move).typeMod > 0) { |
|
const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"] && !(move.infiltrates && this.gen >= 6); |
|
if (hitSub) |
|
return; |
|
if (target.eatItem()) { |
|
this.debug("-50% reduction"); |
|
this.add("-enditem", target, this.effect, "[weaken]"); |
|
return this.chainModify(0.5); |
|
} |
|
} |
|
}, |
|
onEat() { |
|
}, |
|
num: 188, |
|
gen: 4 |
|
}, |
|
zapplate: { |
|
name: "Zap Plate", |
|
spritenum: 572, |
|
onPlate: "Electric", |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Electric") { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source && source.baseSpecies.num === 493 || pokemon.baseSpecies.num === 493) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Arceus-Electric", |
|
num: 300, |
|
gen: 4 |
|
}, |
|
zoomlens: { |
|
name: "Zoom Lens", |
|
spritenum: 574, |
|
fling: { |
|
basePower: 10 |
|
}, |
|
onSourceModifyAccuracyPriority: -2, |
|
onSourceModifyAccuracy(accuracy, target) { |
|
if (typeof accuracy === "number" && !this.queue.willMove(target)) { |
|
this.debug("Zoom Lens boosting accuracy"); |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
num: 276, |
|
gen: 4 |
|
}, |
|
|
|
berserkgene: { |
|
name: "Berserk Gene", |
|
spritenum: 388, |
|
onUpdate(pokemon) { |
|
if (pokemon.useItem()) { |
|
pokemon.addVolatile("confusion"); |
|
} |
|
}, |
|
boosts: { |
|
atk: 2 |
|
}, |
|
num: 0, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
berry: { |
|
name: "Berry", |
|
spritenum: 319, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Poison" |
|
}, |
|
onResidualOrder: 10, |
|
onResidual(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 2) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onTryEatItem(item, pokemon) { |
|
if (!this.runEvent("TryHeal", pokemon, null, this.effect, 10)) |
|
return false; |
|
}, |
|
onEat(pokemon) { |
|
this.heal(10); |
|
}, |
|
num: 155, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
bitterberry: { |
|
name: "Bitter Berry", |
|
spritenum: 334, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Ground" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.volatiles["confusion"]) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
pokemon.removeVolatile("confusion"); |
|
}, |
|
num: 156, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
burntberry: { |
|
name: "Burnt Berry", |
|
spritenum: 13, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Ice" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status === "frz") { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
if (pokemon.status === "frz") { |
|
pokemon.cureStatus(); |
|
} |
|
}, |
|
num: 153, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
goldberry: { |
|
name: "Gold Berry", |
|
spritenum: 448, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Psychic" |
|
}, |
|
onResidualOrder: 10, |
|
onResidual(pokemon) { |
|
if (pokemon.hp <= pokemon.maxhp / 2) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onTryEatItem(item, pokemon) { |
|
if (!this.runEvent("TryHeal", pokemon, null, this.effect, 30)) |
|
return false; |
|
}, |
|
onEat(pokemon) { |
|
this.heal(30); |
|
}, |
|
num: 158, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
iceberry: { |
|
name: "Ice Berry", |
|
spritenum: 381, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Grass" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status === "brn") { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
if (pokemon.status === "brn") { |
|
pokemon.cureStatus(); |
|
} |
|
}, |
|
num: 152, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
mintberry: { |
|
name: "Mint Berry", |
|
spritenum: 65, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Water" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status === "slp") { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
if (pokemon.status === "slp") { |
|
pokemon.cureStatus(); |
|
} |
|
}, |
|
num: 150, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
miracleberry: { |
|
name: "Miracle Berry", |
|
spritenum: 262, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Flying" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status || pokemon.volatiles["confusion"]) { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
pokemon.cureStatus(); |
|
pokemon.removeVolatile("confusion"); |
|
}, |
|
num: 157, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
mysteryberry: { |
|
name: "Mystery Berry", |
|
spritenum: 244, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Fighting" |
|
}, |
|
onUpdate(pokemon) { |
|
if (!pokemon.hp) |
|
return; |
|
const moveSlot = pokemon.lastMove && pokemon.getMoveData(pokemon.lastMove.id); |
|
if (moveSlot && moveSlot.pp === 0) { |
|
pokemon.addVolatile("leppaberry"); |
|
pokemon.volatiles["leppaberry"].moveSlot = moveSlot; |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
let moveSlot; |
|
if (pokemon.volatiles["leppaberry"]) { |
|
moveSlot = pokemon.volatiles["leppaberry"].moveSlot; |
|
pokemon.removeVolatile("leppaberry"); |
|
} else { |
|
let pp = 99; |
|
for (const possibleMoveSlot of pokemon.moveSlots) { |
|
if (possibleMoveSlot.pp < pp) { |
|
moveSlot = possibleMoveSlot; |
|
pp = moveSlot.pp; |
|
} |
|
} |
|
} |
|
moveSlot.pp += 5; |
|
if (moveSlot.pp > moveSlot.maxpp) |
|
moveSlot.pp = moveSlot.maxpp; |
|
this.add("-activate", pokemon, "item: Mystery Berry", moveSlot.move); |
|
}, |
|
num: 154, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
pinkbow: { |
|
name: "Pink Bow", |
|
spritenum: 444, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Normal") { |
|
return basePower * 1.1; |
|
} |
|
}, |
|
num: 251, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
polkadotbow: { |
|
name: "Polkadot Bow", |
|
spritenum: 444, |
|
onBasePower(basePower, user, target, move) { |
|
if (move.type === "Normal") { |
|
return basePower * 1.1; |
|
} |
|
}, |
|
num: 251, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
przcureberry: { |
|
name: "PRZ Cure Berry", |
|
spritenum: 63, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Fire" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status === "par") { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
if (pokemon.status === "par") { |
|
pokemon.cureStatus(); |
|
} |
|
}, |
|
num: 149, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
psncureberry: { |
|
name: "PSN Cure Berry", |
|
spritenum: 333, |
|
isBerry: true, |
|
naturalGift: { |
|
basePower: 80, |
|
type: "Electric" |
|
}, |
|
onUpdate(pokemon) { |
|
if (pokemon.status === "psn" || pokemon.status === "tox") { |
|
pokemon.eatItem(); |
|
} |
|
}, |
|
onEat(pokemon) { |
|
if (pokemon.status === "psn" || pokemon.status === "tox") { |
|
pokemon.cureStatus(); |
|
} |
|
}, |
|
num: 151, |
|
gen: 2, |
|
isNonstandard: "Past" |
|
}, |
|
|
|
crucibellite: { |
|
name: "Crucibellite", |
|
spritenum: 577, |
|
megaStone: "Crucibelle-Mega", |
|
megaEvolves: "Crucibelle", |
|
itemUser: ["Crucibelle"], |
|
onTakeItem(item, source) { |
|
if (item.megaEvolves === source.baseSpecies.baseSpecies) |
|
return false; |
|
return true; |
|
}, |
|
num: -1, |
|
gen: 6, |
|
isNonstandard: "CAP" |
|
}, |
|
vilevial: { |
|
name: "Vile Vial", |
|
spritenum: 752, |
|
fling: { |
|
basePower: 60 |
|
}, |
|
onBasePowerPriority: 15, |
|
onBasePower(basePower, user, target, move) { |
|
if (user.baseSpecies.num === -66 && ["Poison", "Flying"].includes(move.type)) { |
|
return this.chainModify([4915, 4096]); |
|
} |
|
}, |
|
onTakeItem(item, pokemon, source) { |
|
if (source?.baseSpecies.num === -66 || pokemon.baseSpecies.num === -66) { |
|
return false; |
|
} |
|
return true; |
|
}, |
|
forcedForme: "Venomicon-Epilogue", |
|
itemUser: ["Venomicon-Epilogue"], |
|
num: -2, |
|
gen: 8, |
|
isNonstandard: "CAP" |
|
} |
|
}; |
|
|
|
|