pokemon-showdown/data/mods/gen3/items.ts
Guangcong Luo d1db1b5d95 Move descriptions to data/text/ files
This adds some new `data/text/` files, which are the new home for
item/move/ability descriptions, as well as in-game messages, in one
place for ease of translation.
2020-09-06 21:21:40 -07:00

346 lines
7.9 KiB
TypeScript

export const Items: {[k: string]: ModdedItemData} = {
aguavberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 2) {
pokemon.eatItem();
}
},
},
apicotberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 4) {
pokemon.eatItem();
}
},
},
berryjuice: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 2) {
if (this.runEvent('TryHeal', pokemon) && pokemon.useItem()) {
this.heal(20);
}
}
},
isNonstandard: "Unobtainable",
},
blackbelt: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move && move.type === 'Fighting') {
return basePower * 1.1;
}
},
},
blackglasses: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move && move.type === 'Dark') {
return basePower * 1.1;
}
},
},
charcoal: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move && move.type === 'Fire') {
return basePower * 1.1;
}
},
},
dragonfang: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move && move.type === 'Dragon') {
return basePower * 1.1;
}
},
},
enigmaberry: {
name: "Enigma Berry",
spritenum: 124,
isBerry: true,
num: 208,
gen: 3,
isNonstandard: "Unobtainable",
},
figyberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 2) {
pokemon.eatItem();
}
},
},
ganlonberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 4) {
pokemon.eatItem();
}
},
},
hardstone: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move && move.type === 'Rock') {
return basePower * 1.1;
}
},
},
iapapaberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 2) {
pokemon.eatItem();
}
},
},
kingsrock: {
inherit: true,
onModifyMove(move) {
const affectedByKingsRock = [
'aerialace', 'aeroblast', 'aircutter', 'armthrust', 'barrage', 'beatup', 'bide', 'bind', 'blastburn', 'bonerush', 'bonemerang', 'bounce', 'brickbreak', 'bulletseed', 'clamp', 'cometpunch', 'crabhammer', 'crosschop', 'cut', 'dig', 'dive', 'doublekick', 'doubleslap', 'doubleedge', 'dragonbreath', 'dragonclaw', 'dragonrage', 'drillpeck', 'earthquake', 'eggbomb', 'endeavor', 'eruption', 'explosion', 'extremespeed', 'falseswipe', 'feintattack', 'firespin', 'flail', 'fly', 'frenzyplant', 'frustration', 'furyattack', 'furycutter', 'furyswipes', 'gust', 'hiddenpower', 'highjumpkick', 'hornattack', 'hydrocannon', 'hydropump', 'hyperbeam', 'iceball', 'iciclespear', 'jumpkick', 'karatechop', 'leafblade', 'lowkick', 'machpunch', 'magicalleaf', 'magnitude', 'megakick', 'megapunch', 'megahorn', 'meteormash', 'mudshot', 'muddywater', 'nightshade', 'outrage', 'overheat', 'payday', 'peck', 'petaldance', 'pinmissile', 'poisontail', 'pound', 'psychoboost', 'psywave', 'quickattack', 'rage', 'rapidspin', 'razorleaf', 'razorwind', 'return', 'revenge', 'reversal', 'rockblast', 'rockthrow', 'rollingkick', 'rollout', 'sandtomb', 'scratch', 'seismictoss', 'selfdestruct', 'shadowpunch', 'shockwave', 'signalbeam', 'silverwind', 'skullbash', 'skyattack', 'skyuppercut', 'slam', 'slash', 'snore', 'solarbeam', 'sonicboom', 'spikecannon', 'spitup', 'steelwing', 'strength', 'struggle', 'submission', 'surf', 'swift', 'tackle', 'takedown', 'thrash', 'tickle', 'triplekick', 'twister', 'uproar', 'visegrip', 'vinewhip', 'vitalthrow', 'volttackle', 'watergun', 'waterpulse', 'waterfall', 'weatherball', 'whirlpool', 'wingattack', 'wrap',
];
if (affectedByKingsRock.includes(move.id)) {
if (!move.secondaries) move.secondaries = [];
move.secondaries.push({
chance: 10,
volatileStatus: 'flinch',
});
}
},
},
lansatberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 4) {
pokemon.eatItem();
}
},
},
laxincense: {
inherit: true,
onModifyAccuracy(accuracy) {
if (typeof accuracy !== 'number') return;
this.debug('lax incense - decreasing accuracy');
return accuracy * 0.95;
},
},
liechiberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 4) {
pokemon.eatItem();
}
},
},
lightball: {
inherit: true,
onModifyAtk() {},
},
magnet: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move.type === 'Electric') {
return basePower * 1.1;
}
},
},
magoberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 2) {
pokemon.eatItem();
}
},
},
metalcoat: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move.type === 'Steel') {
return basePower * 1.1;
}
},
},
miracleseed: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move.type === 'Grass') {
return basePower * 1.1;
}
},
},
mysticwater: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move.type === 'Water') {
return basePower * 1.1;
}
},
},
nevermeltice: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move.type === 'Ice') {
return basePower * 1.1;
}
},
},
oranberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 2) {
pokemon.eatItem();
}
},
},
petayaberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 4) {
pokemon.eatItem();
}
},
},
poisonbarb: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move.type === 'Poison') {
return basePower * 1.1;
}
},
},
quickclaw: {
inherit: true,
onFractionalPriority(priority, pokemon) {
if (this.randomChance(1, 5)) {
return 0.1;
}
},
},
salacberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 4) {
pokemon.eatItem();
}
},
},
seaincense: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move && move.type === 'Water') {
return basePower * 1.05;
}
},
},
sharpbeak: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move && move.type === 'Flying') {
return basePower * 1.1;
}
},
},
silkscarf: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move.type === 'Normal') {
return basePower * 1.1;
}
},
},
silverpowder: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move.type === 'Bug') {
return basePower * 1.1;
}
},
},
sitrusberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 2) {
pokemon.eatItem();
}
},
onEat(pokemon) {
this.heal(30);
},
},
softsand: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move.type === 'Ground') {
return basePower * 1.1;
}
},
},
spelltag: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move.type === 'Ghost') {
return basePower * 1.1;
}
},
},
starfberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 4) {
pokemon.eatItem();
}
},
},
twistedspoon: {
inherit: true,
onBasePower(basePower, user, target, move) {
if (move.type === 'Psychic') {
return basePower * 1.1;
}
},
},
wikiberry: {
inherit: true,
onUpdate() {},
onResidualOrder: 5,
onResidual(pokemon) {
if (pokemon.hp <= pokemon.maxhp / 2) {
pokemon.eatItem();
}
},
},
};