exports.BattleItems = { "absorbbulb": { id: "absorbbulb", name: "Absorb Bulb", spritenum: 2, fling: { basePower: 30 }, onAfterDamage: function(damage, target, source, move) { if (move.type === 'Water' && target.useItem()) { this.boost({spa: 1}); } }, desc: "Raises Sp. Atk by 1 if hit by a Water-type attack. Single use." }, "adamantorb": { id: "adamantorb", name: "Adamant Orb", spritenum: 4, fling: { basePower: 60 }, onBasePower: function(basePower, user, target, move) { if (move && user.template.species === 'Dialga' && (move.type === 'Steel' || move.type === 'Dragon')) { return basePower * 1.2; } }, desc: "If holder is a Dialga, its Steel- and Dragon-type attacks have 1.2x power." }, "aguavberry": { id: "aguavberry", name: "Aguav Berry", spritenum: 5, isBerry: true, naturalGift: { basePower: 60, type: "Dragon" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/2) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.heal(pokemon.maxhp/8); if (pokemon.getNature().minus === 'spd') { pokemon.addVolatile('confusion'); } }, desc: "Restores 1/8 max HP when at 1/2 max HP or less. May confuse. Single use." }, "airballoon": { id: "airballoon", name: "Air Balloon", spritenum: 6, fling: { basePower: 10 }, onStart: function(target) { this.add('-item', target, 'Air Balloon'); }, onImmunity: function(type) { if (type === 'Ground') return false; }, onAfterDamage: function(damage, target, source, effect) { this.debug('effect: '+effect.id); if (effect.effectType === 'Move') { this.add('-enditem', target, 'Air Balloon'); target.setItem(''); } }, onAfterSubDamage: function(damage, target, source, effect) { this.debug('effect: '+effect.id); if (effect.effectType === 'Move') { this.add('-enditem', target, 'Air Balloon'); target.setItem(''); } }, desc: "Holder is immune to Ground-type attacks. Pops when holder is hit." }, "apicotberry": { id: "apicotberry", name: "Apicot Berry", spritenum: 10, isBerry: true, naturalGift: { basePower: 80, type: "Ground" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/4|| (pokemon.hp <= pokemon.maxhp/2 && pokemon.ability === 'gluttony')) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.boost({spd:1}); }, desc: "Raises Sp. Def by 1 when at 1/4 max HP or less. Single use." }, "armorfossil": { id: "armorfossil", name: "Armor Fossil", spritenum: 12, fling: { basePower: 100 }, desc: "Can be revived into Shieldon." }, "aspearberry": { id: "aspearberry", name: "Aspear Berry", spritenum: 13, isBerry: true, naturalGift: { basePower: 60, type: "Ice" }, onUpdate: function(pokemon) { if (pokemon.status === 'frz') { pokemon.eatItem(); } }, onEat: function(pokemon) { if (pokemon.status === 'frz') { pokemon.cureStatus(); } }, desc: "Holder is cured if it is frozen. Single use." }, "babiriberry": { id: "babiriberry", name: "Babiri Berry", spritenum: 17, isBerry: true, naturalGift: { basePower: 60, type: "Steel" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Steel' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Steel-type attack. Single use." }, "belueberry": { id: "belueberry", name: "Belue Berry", spritenum: 21, isBerry: true, naturalGift: { basePower: 80, type: "Electric" }, desc: "No competitive use." }, "berryjuice": { id: "berryjuice", name: "Berry Juice", spritenum: 22, fling: { basePower: 30 }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/2) { if (pokemon.useItem()) { this.heal(20); } } }, desc: "Restores 20HP when at 1/2 max HP or less. Single use." }, "bigroot": { id: "bigroot", name: "Big Root", spritenum: 29, fling: { basePower: 10 }, onTryHealPriority: 1, onTryHeal: function(damage, target, source, effect) { var heals = {drain: 1, leechseed: 1, ingrain: 1, aquaring: 1}; if (heals[effect.id]) { return Math.ceil((damage * 1.3) - 0.5); // Big Root rounds half down } }, desc: "Holder gains 1.3x HP from draining moves, Aqua Ring, Ingrain, and Leech Seed." }, "bindingband": { id: "bindingband", name: "Binding Band", spritenum: 31, fling: { basePower: 30 }, // implemented in statuses desc: "Holder's partial-trapping moves deal 1/8 max HP per turn instead of 1/16." }, "blackbelt": { id: "blackbelt", name: "Black Belt", spritenum: 32, fling: { basePower: 30 }, onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Fighting') { return basePower * 1.2; } }, desc: "Holder's Fighting-type attacks have 1.2x power." }, "blacksludge": { id: "blacksludge", name: "Black Sludge", spritenum: 34, fling: { basePower: 30 }, onResidualOrder: 5, onResidualSubOrder: 2, onResidual: function(pokemon) { if (pokemon.hasType('Poison')) { this.heal(pokemon.maxhp/16); } else { this.damage(pokemon.maxhp/8); } }, desc: "Each turn, if holder is a Poison-type, restores 1/16 max HP; loses 1/8 if not." }, "blackglasses": { id: "blackglasses", name: "BlackGlasses", spritenum: 35, fling: { basePower: 30 }, onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Dark') { return basePower * 1.2; } }, desc: "Holder's Dark-type attacks have 1.2x power." }, "blukberry": { id: "blukberry", name: "Bluk Berry", spritenum: 44, isBerry: true, naturalGift: { basePower: 70, type: "Fire" }, desc: "No competitive use." }, "brightpowder": { id: "brightpowder", name: "BrightPowder", spritenum: 51, fling: { basePower: 10 }, onAccuracy: function(accuracy) { if (typeof accuracy !== 'number') return; this.debug('brightpowder - decreasing accuracy'); return accuracy * 0.9; }, desc: "The accuracy of attacks against the holder is 0.9x." }, "buggem": { id: "buggem", name: "Bug Gem", spritenum: 53, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Bug') { if (user.useItem(user, move)) { this.add('-enditem', user, 'Bug Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Bug-type attack will have 1.5x power. Single use." }, "burndrive": { id: "burndrive", name: "Burn Drive", spritenum: 54, fling: { basePower: 70 }, onDrive: 'Fire', desc: "Holder's Techno Blast is Fire-type." }, "cellbattery": { id: "cellbattery", name: "Cell Battery", spritenum: 60, fling: { basePower: 30 }, onAfterDamage: function(damage, target, source, move) { if (move.type === 'Electric' && target.useItem()) { this.boost({atk: 1}); } }, desc: "Raises Attack by 1 if hit by an Electric-type attack. Single use." }, "charcoal": { id: "charcoal", name: "Charcoal", spritenum: 61, fling: { basePower: 30 }, onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Fire') { return basePower * 1.2; } }, desc: "Holder's Fire-type attacks have 1.2x power." }, "chartiberry": { id: "chartiberry", name: "Charti Berry", spritenum: 62, isBerry: true, naturalGift: { basePower: 60, type: "Rock" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Rock' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Rock-type attack. Single use." }, "cheriberry": { id: "cheriberry", name: "Cheri Berry", spritenum: 63, isBerry: true, naturalGift: { basePower: 60, type: "Fire" }, onUpdate: function(pokemon) { if (pokemon.status === 'par') { pokemon.eatItem(); } }, onEat: function(pokemon) { if (pokemon.status === 'par') { pokemon.cureStatus(); } }, desc: "Holder cures itself if it is paralyzed. Single use." }, "cherishball": { id: "cherishball", name: "Cherish Ball", spritenum: 64, desc: "A rare Poke Ball that has been crafted to commemorate an occasion." }, "chestoberry": { id: "chestoberry", name: "Chesto Berry", spritenum: 65, isBerry: true, naturalGift: { basePower: 60, type: "Water" }, onUpdate: function(pokemon) { if (pokemon.status === 'slp') { pokemon.eatItem(); } }, onEat: function(pokemon) { if (pokemon.status === 'slp') { pokemon.cureStatus(); } }, desc: "Holder wakes up if it is asleep. Single use." }, "chilanberry": { id: "chilanberry", name: "Chilan Berry", spritenum: 66, isBerry: true, naturalGift: { basePower: 60, type: "Normal" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Normal' && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a Normal-type attack. Single use." }, "chilldrive": { id: "chilldrive", name: "Chill Drive", spritenum: 67, fling: { basePower: 70 }, onDrive: 'Ice', desc: "Holder's Techno Blast is Ice-type." }, "choiceband": { id: "choiceband", name: "Choice Band", spritenum: 68, fling: { basePower: 10 }, onStart: function(pokemon) { if (pokemon.volatiles['choicelock']) { this.debug('removing choicelock: '+pokemon.volatiles.choicelock); } pokemon.removeVolatile('choicelock'); }, onModifyMove: function(move, pokemon) { pokemon.addVolatile('choicelock'); }, onModifyAtk: function(atk) { return atk * 1.5; }, isChoice: true, desc: "Holder's Attack is 1.5x, but it can only use the first move it selects." }, "choicescarf": { id: "choicescarf", name: "Choice Scarf", spritenum: 69, fling: { basePower: 10 }, onStart: function(pokemon) { if (pokemon.volatiles['choicelock']) { this.debug('removing choicelock: '+pokemon.volatiles.choicelock); } pokemon.removeVolatile('choicelock'); }, onModifyMove: function(move, pokemon) { pokemon.addVolatile('choicelock'); }, onModifySpe: function(spe) { return spe * 1.5; }, isChoice: true, desc: "Holder's Speed is 1.5x, but it can only use the first move it selects." }, "choicespecs": { id: "choicespecs", name: "Choice Specs", spritenum: 70, fling: { basePower: 10 }, onStart: function(pokemon) { if (pokemon.volatiles['choicelock']) { this.debug('removing choicelock: '+pokemon.volatiles.choicelock); } pokemon.removeVolatile('choicelock'); }, onModifyMove: function(move, pokemon) { pokemon.addVolatile('choicelock'); }, onModifySpA: function(spa) { return spa * 1.5; }, isChoice: true, desc: "Holder's Sp. Atk is 1.5x, but it can only use the first move it selects." }, "chopleberry": { id: "chopleberry", name: "Chople Berry", spritenum: 71, isBerry: true, naturalGift: { basePower: 60, type: "Fighting" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Fighting' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Fighting-type attack. Single use." }, "clawfossil": { id: "clawfossil", name: "Claw Fossil", spritenum: 72, fling: { basePower: 100 }, desc: "Can be revived into Anorith." }, "cobaberry": { id: "cobaberry", name: "Coba Berry", spritenum: 76, isBerry: true, naturalGift: { basePower: 60, type: "Flying" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Flying' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Flying-type attack. Single use." }, "colburberry": { id: "colburberry", name: "Colbur Berry", spritenum: 78, isBerry: true, naturalGift: { basePower: 60, type: "Dark" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Dark' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Dark-type attack. Single use." }, "cornnberry": { id: "cornnberry", name: "Cornn Berry", spritenum: 81, isBerry: true, naturalGift: { basePower: 70, type: "Bug" }, desc: "No competitive use." }, "coverfossil": { id: "coverfossil", name: "Cover Fossil", spritenum: 85, fling: { basePower: 100 }, desc: "Can be revived into Tirtouga." }, "custapberry": { id: "custapberry", name: "Custap Berry", spritenum: 86, isBerry: true, naturalGift: { basePower: 80, type: "Ghost" }, onModifyPriority: function(priority, pokemon) { if (pokemon.hp <= pokemon.maxhp/4 || (pokemon.hp <= pokemon.maxhp/2 && pokemon.ability === 'gluttony')) { if (pokemon.eatItem()) { this.add('-activate', pokemon, 'Custap Berry'); pokemon.removeVolatile('custapberry'); return priority + 0.1; } } }, desc: "Holder moves first in its priority bracket when at 1/4 max HP or less. Single use." }, "damprock": { id: "damprock", name: "Damp Rock", spritenum: 88, fling: { basePower: 60 }, desc: "Holder's use of Rain Dance lasts 8 turns instead of 5." }, "darkgem": { id: "darkgem", name: "Dark Gem", spritenum: 89, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Dark') { if (user.useItem()) { this.add('-enditem', user, 'Dark Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Dark-type attack will have 1.5x power. Single use." }, "deepseascale": { id: "deepseascale", name: "DeepSeaScale", spritenum: 93, fling: { basePower: 30 }, onModifySpD: function(spd, pokemon) { if (pokemon.template.species === 'Clamperl') { return spd * 2; } }, desc: "If holder is a Clamperl, its Sp. Def is doubled." }, "deepseatooth": { id: "deepseatooth", name: "DeepSeaTooth", spritenum: 94, fling: { basePower: 90 }, onModifySpA: function(spa, pokemon) { if (pokemon.template.species === 'Clamperl') { return spa * 2; } }, desc: "If holder is a Clamperl, its Sp. Atk is doubled." }, "destinyknot": { id: "destinyknot", name: "Destiny Knot", spritenum: 95, fling: { basePower: 10 }, onAttractPriority: -100, onAttract: function(target, source) { this.debug('attract intercepted: '+target+' from '+source); if (!source || source === target) return; if (!source.volatiles.attract) source.addVolatile('attract', target); }, desc: "If holder becomes infatuated, the other Pokemon also becomes infatuated." }, "diveball": { id: "diveball", name: "Dive Ball", spritenum: 101, desc: "A Poke Ball that works especially well on Pokemon that live underwater." }, "domefossil": { id: "domefossil", name: "Dome Fossil", spritenum: 102, fling: { basePower: 100 }, desc: "Can be revived into Kabuto." }, "dousedrive": { id: "dousedrive", name: "Douse Drive", spritenum: 103, fling: { basePower: 70 }, onDrive: 'Water', desc: "Holder's Techno Blast is Water-type." }, "dracoplate": { id: "dracoplate", name: "Draco Plate", spritenum: 105, fling: { basePower: 90 }, onPlate: 'Dragon', onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Dragon') { return basePower * 1.2; } }, desc: "Holder's Dragon-type attacks have 1.2x power. Judgment is Dragon-type." }, "dragonfang": { id: "dragonfang", name: "Dragon Fang", spritenum: 106, fling: { basePower: 70 }, onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Dragon') { return basePower * 1.2; } }, desc: "Holder's Dragon-type attacks have 1.2x power." }, "dragongem": { id: "dragongem", name: "Dragon Gem", spritenum: 107, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Dragon') { if (user.useItem()) { this.add('-enditem', user, 'Dragon Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Dragon-type attack will have 1.5x power. Single use." }, "dreadplate": { id: "dreadplate", name: "Dread Plate", spritenum: 110, fling: { basePower: 90 }, onPlate: 'Dark', onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Dark') { return basePower * 1.2; } }, desc: "Holder's Dark-type attacks have 1.2x power. Judgment is Dark-type." }, "dreamball": { id: "dreamball", name: "Dream Ball", spritenum: 111, desc: "A special Poke Ball that appears out of nowhere in a bag at the Entree Forest." }, "durinberry": { id: "durinberry", name: "Durin Berry", spritenum: 114, isBerry: true, naturalGift: { basePower: 80, type: "Water" }, desc: "No competitive use." }, "duskball": { id: "duskball", name: "Dusk Ball", spritenum: 115, desc: "A Poke Ball that makes it easier to catch wild Pokemon at night or in caves." }, "earthplate": { id: "earthplate", name: "Earth Plate", spritenum: 117, fling: { basePower: 90 }, onPlate: 'Ground', onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Ground') { return basePower * 1.2; } }, desc: "Holder's Ground-type attacks have 1.2x power. Judgment is Ground-type." }, "ejectbutton": { id: "ejectbutton", name: "Eject Button", spritenum: 118, fling: { basePower: 30 }, onHit: function(target, source, move) { if (source && source !== target && target.hp && move && move.selfSwitch) { move.selfSwitch = false; } }, onAfterMoveSecondary: function(target, source, move) { if (source && source !== target && target.hp && move && move.category !== 'Status') { if (target.useItem()) { target.switchFlag = true; } } }, desc: "If holder is hit, it immediately switches out with a chosen ally. Single use." }, "electirizer": { id: "electirizer", name: "Electirizer", spritenum: 119, fling: { basePower: 80 }, desc: "Evolves Electabuzz into Electivire when traded." }, "electricgem": { id: "electricgem", name: "Electric Gem", spritenum: 120, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Electric') { if (user.useItem()) { this.add('-enditem', user, 'Electric Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Electric-type attack will have 1.5x power. Single use." }, "energypowder": { id: "energypowder", name: "EnergyPowder", spritenum: 123, fling: { basePower: 30 }, desc: "Restores 50HP to one Pokemon but lowers Happiness." }, "enigmaberry": { id: "enigmaberry", name: "Enigma Berry", spritenum: 124, isBerry: true, naturalGift: { basePower: 80, type: "Bug" }, onSourceBasePower: function(basePower, user, target, move) { if (move && this.getEffectiveness(move.type, target) > 0) { target.addVolatile('enigmaberry'); } }, effect: { duration: 1, onUpdate: function(target) { if (target.eatItem()) { target.removeVolatile('enigmaberry'); } } }, onEat: function(pokemon) { this.heal(pokemon.maxhp/4); }, desc: "Restores 1/4 max HP when holder is hit by a super effective move. Single use." }, "eviolite": { id: "eviolite", name: "Eviolite", spritenum: 130, fling: { basePower: 40 }, onModifyDef: function(def, pokemon) { if (pokemon.baseTemplate.nfe) { return def * 1.5; } }, onModifySpD: function(spd, pokemon) { if (pokemon.baseTemplate.nfe) { return spd * 1.5; } }, desc: "If holder's species can evolve, its Defense and Sp. Def are 1.5x." }, "expertbelt": { id: "expertbelt", name: "Expert Belt", spritenum: 132, fling: { basePower: 10 }, onBasePower: function(basePower, user, target, move) { if (move && this.getEffectiveness(move.type, target) > 0) { return basePower * 1.2; } }, desc: "Holder's super effective attacks against other Pokemon do 1.2x damage." }, "fastball": { id: "fastball", name: "Fast Ball", spritenum: 137, desc: "A Poke Ball that makes it easier to catch Pokemon which are quick to run away." }, "fightinggem": { id: "fightinggem", name: "Fighting Gem", spritenum: 139, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Fighting') { if (user.useItem()) { this.add('-enditem', user, 'Fighting Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Fighting-type attack will have 1.5x power. Single use." }, "figyberry": { id: "figyberry", name: "Figy Berry", spritenum: 140, isBerry: true, naturalGift: { basePower: 60, type: "Bug" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/2) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.heal(pokemon.maxhp/8); if (pokemon.getNature().minus === 'atk') { pokemon.addVolatile('confusion'); } }, desc: "Restores 1/8 max HP when at 1/2 max HP or less. May confuse. Single use." }, "firegem": { id: "firegem", name: "Fire Gem", spritenum: 141, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Fire') { if (user.useItem()) { this.add('-enditem', user, 'Fire Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Fire-type attack will have 1.5x power. Single use." }, "fistplate": { id: "fistplate", name: "Fist Plate", spritenum: 143, fling: { basePower: 90 }, onPlate: 'Fighting', onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Fighting') { return basePower * 1.2; } }, desc: "Holder's Fighting-type attacks have 1.2x power. Judgment is Fighting-type." }, "flameorb": { id: "flameorb", name: "Flame Orb", spritenum: 145, fling: { basePower: 30, status: 'brn' }, onResidualOrder: 26, onResidualSubOrder: 2, onResidual: function(pokemon) { if (!pokemon.status && !pokemon.hasType('Fire') && pokemon.ability !== 'waterveil') { this.add('-activate', pokemon, 'item: Flame Orb'); pokemon.trySetStatus('brn'); } }, desc: "At the end of every turn, this item attempts to burn the holder." }, "flameplate": { id: "flameplate", name: "Flame Plate", spritenum: 146, fling: { basePower: 90 }, onPlate: 'Fire', onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Fire') { return basePower * 1.2; } }, desc: "Holder's Fire-type attacks have 1.2x power. Judgment is Fire-type." }, "floatstone": { id: "floatstone", name: "Float Stone", spritenum: 147, fling: { basePower: 30 }, onModifyPokemon: function(pokemon) { pokemon.weightkg /= 2; }, desc: "Holder's weight is halved." }, "flyinggem": { id: "flyinggem", name: "Flying Gem", spritenum: 149, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Flying') { if (user.useItem()) { this.add('-enditem', user, 'Flying Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Flying-type attack will have 1.5x power. Single use." }, "focusband": { id: "focusband", name: "Focus Band", spritenum: 150, fling: { basePower: 10 }, onDamage: function(damage, target, source, effect) { if (this.random(10) === 0 && damage >= target.hp && effect && effect.effectType === 'Move') { this.add("-message",target.name+" held on using its Focus Band! (placeholder)"); return target.hp - 1; } }, desc: "Holder has a 10% chance to survive an attack that would KO it with 1HP." }, "focussash": { id: "focussash", name: "Focus Sash", spritenum: 151, fling: { basePower: 10 }, onDamage: function(damage, target, source, effect) { if (target.hp === target.maxhp && damage >= target.hp && effect && effect.effectType === 'Move') { if (target.useItem()) { return target.hp - 1; } } }, desc: "If holder's HP is full, will survive an attack that would KO it with 1HP. Single use." }, "fullincense": { id: "fullincense", name: "Full Incense", spritenum: 155, fling: { basePower: 10 }, onModifyPriority: function(priority, pokemon) { if (pokemon.ability !== 'stall') { return priority - 0.1; } }, desc: "Holder moves last in its priority bracket." }, "ganlonberry": { id: "ganlonberry", name: "Ganlon Berry", spritenum: 158, isBerry: true, naturalGift: { basePower: 80, type: "Ice" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/4 || (pokemon.hp <= pokemon.maxhp/2 && pokemon.ability === 'gluttony')) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.boost({def:1}); }, desc: "Raises Defense by 1 when at 1/4 max HP or less. Single use." }, "ghostgem": { id: "ghostgem", name: "Ghost Gem", spritenum: 161, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Ghost') { if (user.useItem()) { this.add('-enditem', user, 'Ghost Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Ghost-type attack will have 1.5x power. Single use." }, "grassgem": { id: "grassgem", name: "Grass Gem", spritenum: 172, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Grass') { if (user.useItem()) { this.add('-enditem', user, 'Grass Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Grass-type attack will have 1.5x power. Single use." }, "greatball": { id: "greatball", name: "Great Ball", spritenum: 174, desc: "A high-performance Ball that provides a higher catch rate than a Poke Ball." }, "grepaberry": { id: "grepaberry", name: "Grepa Berry", spritenum: 178, isBerry: true, naturalGift: { basePower: 70, type: "Flying" }, desc: "No competitive use." }, "gripclaw": { id: "gripclaw", name: "Grip Claw", spritenum: 179, fling: { basePower: 90 }, // implemented in statuses desc: "Holder's partial-trapping moves always last 7 turns." }, "griseousorb": { id: "griseousorb", name: "Griseous Orb", spritenum: 180, fling: { basePower: 60 }, onBasePower: function(basePower, user, target, move) { if (user.template.num === 487 && (move.type === 'Ghost' || move.type === 'Dragon')) { return basePower * 1.2; } }, onTakeItem: function(item, pokemon, source) { if ((source && source.template.num === 487) || pokemon.template.num === 487) { return false; } }, desc: "If holder is a Giratina, its Ghost- and Dragon-type attacks have 1.2x power." }, "groundgem": { id: "groundgem", name: "Ground Gem", spritenum: 182, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Ground') { if (user.useItem()) { this.add('-enditem', user, 'Ground Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Ground-type attack will have 1.5x power. Single use." }, "habanberry": { id: "habanberry", name: "Haban Berry", spritenum: 185, isBerry: true, naturalGift: { basePower: 60, type: "Dragon" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Dragon' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Dragon-type attack. Single use." }, "hardstone": { id: "hardstone", name: "Hard Stone", spritenum: 187, fling: { basePower: 100 }, onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Rock') { return basePower * 1.2; } }, desc: "Holder's Rock-type attacks have 1.2x power." }, "healball": { id: "healball", name: "Heal Ball", spritenum: 188, desc: "A remedial Poke Ball that restores the caught Pokemon's HP and status problem." }, "heatrock": { id: "heatrock", name: "Heat Rock", spritenum: 193, fling: { basePower: 60 }, desc: "Holder's use of Sunny Day lasts 8 turns instead of 5." }, "heavyball": { id: "heavyball", name: "Heavy Ball", spritenum: 194, desc: "A Poke Ball for catching very heavy Pokemon." }, "helixfossil": { id: "helixfossil", name: "Helix Fossil", spritenum: 195, fling: { basePower: 100 }, desc: "Can be revived into Omanyte." }, "hondewberry": { id: "hondewberry", name: "Hondew Berry", spritenum: 213, isBerry: true, naturalGift: { basePower: 70, type: "Ground" }, desc: "No competitive use." }, "iapapaberry": { id: "iapapaberry", name: "Iapapa Berry", spritenum: 217, isBerry: true, naturalGift: { basePower: 60, type: "Dark" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/2) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.heal(pokemon.maxhp/8); if (pokemon.getNature().minus === 'def') { pokemon.addVolatile('confusion'); } }, desc: "Restores 1/8 max HP when at 1/2 max HP or less. May confuse. Single use." }, "icegem": { id: "icegem", name: "Ice Gem", spritenum: 218, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Ice') { if (user.useItem()) { this.add('-enditem', user, 'Ice Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Ice-type attack will have 1.5x power. Single use." }, "icicleplate": { id: "icicleplate", name: "Icicle Plate", spritenum: 220, fling: { basePower: 90 }, onPlate: 'Ice', onBasePower: function(basePower, user, target, move) { if (move.type === 'Ice') { return basePower * 1.2; } }, desc: "Holder's Ice-type attacks have 1.2x power. Judgment is Ice-type." }, "icyrock": { id: "icyrock", name: "Icy Rock", spritenum: 221, fling: { basePower: 40 }, desc: "Holder's use of Hail lasts 8 turns instead of 5." }, "insectplate": { id: "insectplate", name: "Insect Plate", spritenum: 223, fling: { basePower: 90 }, onPlate: 'Bug', onBasePower: function(basePower, user, target, move) { if (move.type === 'Bug') { return basePower * 1.2; } }, desc: "Holder's Bug-type attacks have 1.2x power. Judgment is Bug-type." }, "ironball": { id: "ironball", name: "Iron Ball", spritenum: 224, fling: { basePower: 130 }, onModifyPokemon: function(pokemon) { pokemon.negateImmunity['Ground'] = true; }, onModifySpe: function(spe) { return spe / 2; }, desc: "Holder's Speed is halved and it becomes grounded." }, "ironplate": { id: "ironplate", name: "Iron Plate", spritenum: 225, fling: { basePower: 90 }, onPlate: 'Steel', onBasePower: function(basePower, user, target, move) { if (move.type === 'Steel') { return basePower * 1.2; } }, desc: "Holder's Steel-type attacks have 1.2x power. Judgment is Steel-type." }, "jabocaberry": { id: "jabocaberry", name: "Jaboca Berry", spritenum: 230, isBerry: true, naturalGift: { basePower: 80, type: "Dragon" }, onAfterMoveSecondary: function(target, source, move) { if (source && source !== target && move && move.category === 'Physical') { if (target.eatItem()) { this.damage(source.maxhp/8, source, target); } } }, onEat: function() { }, desc: "If holder is hit by a physical move, attacker loses 1/8 of its max HP. Single use." }, "kasibberry": { id: "kasibberry", name: "Kasib Berry", spritenum: 233, isBerry: true, naturalGift: { basePower: 60, type: "Ghost" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Ghost' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Ghost-type attack. Single use." }, "kebiaberry": { id: "kebiaberry", name: "Kebia Berry", spritenum: 234, isBerry: true, naturalGift: { basePower: 60, type: "Poison" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Poison' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Poison-type attack. Single use." }, "kelpsyberry": { id: "kelpsyberry", name: "Kelpsy Berry", spritenum: 235, isBerry: true, naturalGift: { basePower: 70, type: "Fighting" }, desc: "No competitive use." }, "kingsrock": { id: "kingsrock", name: "King's Rock", spritenum: 236, fling: { basePower: 30, volatileStatus: 'flinch' }, onModifyMove: function(move) { if (move.category !== "Status") { if (!move.secondaries) move.secondaries = []; for (var i=0; i move.maxpp) move.pp = move.maxpp; this.add("-message",pokemon.name+" restored "+move.move+"'s PP using its Leppa Berry! (placeholder)"); }, desc: "Restores 10PP to the first of the holder's moves to reach 0PP. Single use." }, "levelball": { id: "levelball", name: "Level Ball", spritenum: 246, desc: "A Poke Ball for catching Pokemon that are a lower level than your own." }, "liechiberry": { id: "liechiberry", name: "Liechi Berry", spritenum: 248, isBerry: true, naturalGift: { basePower: 80, type: "Grass" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/4 || (pokemon.hp <= pokemon.maxhp/2 && pokemon.ability === 'gluttony')) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.boost({atk:1}); }, desc: "Raises Attack by 1 when at 1/4 max HP or less. Single use." }, "lifeorb": { id: "lifeorb", name: "Life Orb", spritenum: 249, fling: { basePower: 30 }, onBasePower: function(basePower, user) { user.addVolatile('lifeorb'); return basePower * 1.3; }, effect: { duration: 1, onAfterMoveSecondarySelf: function(source, target, move) { if (move && move.effectType === 'Move' && source && source.volatiles['lifeorb']) { this.damage(source.maxhp/10, source, source, this.getItem('lifeorb')); source.removeVolatile('lifeorb'); } } }, desc: "Holder's damaging moves do 1.3x damage; loses 1/10 max HP after the attack." }, "lightball": { id: "lightball", name: "Light Ball", spritenum: 251, fling: { basePower: 30, status: 'par' }, onModifyAtk: function(atk, pokemon) { if (pokemon.template.species === 'Pikachu') { return atk * 2; } }, onModifySpA: function(spa, pokemon) { if (pokemon.template.species === 'Pikachu') { return spa * 2; } }, desc: "If holder is a Pikachu, its Attack and Sp. Atk are doubled." }, "lightclay": { id: "lightclay", name: "Light Clay", spritenum: 252, fling: { basePower: 30 }, // implemented in the corresponding thing desc: "Holder's use of Light Screen or Reflect lasts 8 turns instead of 5." }, "loveball": { id: "loveball", name: "Love Ball", spritenum: 258, desc: "Poke Ball for catching Pokemon that are the opposite gender of your Pokemon." }, "luckypunch": { id: "luckypunch", name: "Lucky Punch", spritenum: 261, fling: { basePower: 40 }, onModifyMove: function(move, user) { if (user.template.species === 'Chansey') { move.critRatio += 2; } }, desc: "If holder is a Chansey, its critical hit ratio is boosted by 2." }, "lumberry": { id: "lumberry", name: "Lum Berry", spritenum: 262, isBerry: true, naturalGift: { basePower: 60, type: "Flying" }, onUpdate: function(pokemon) { if (pokemon.status || pokemon.volatiles['confusion']) { pokemon.eatItem(); } }, onEat: function(pokemon) { pokemon.cureStatus(); pokemon.removeVolatile('confusion'); }, desc: "Holder cures itself if it is confused or has a major status problem. Single use." }, "lureball": { id: "lureball", name: "Lure Ball", spritenum: 264, desc: "A Poke Ball for catching Pokemon hooked by a Rod when fishing." }, "lustrousorb": { id: "lustrousorb", name: "Lustrous Orb", spritenum: 265, fling: { basePower: 60 }, onBasePower: function(basePower, user, target, move) { if (move && user.template.species === 'Palkia' && (move.type === 'Water' || move.type === 'Dragon')) { return basePower * 1.2; } }, desc: "If holder is a Palkia, its Water- and Dragon-type attacks have 1.2x power." }, "luxuryball": { id: "luxuryball", name: "Luxury Ball", spritenum: 266, desc: "A comfortable Poke Ball that makes a caught wild Pokemon quickly grow friendly." }, "machobrace": { id: "machobrace", name: "Macho Brace", spritenum: 269, fling: { basePower: 60 }, onModifySpe: function(spe) { return spe / 2; }, desc: "Holder's Speed is halved." }, "magnet": { id: "magnet", name: "Magnet", spritenum: 273, fling: { basePower: 30 }, onBasePower: function(basePower, user, target, move) { if (move.type === 'Electric') { return basePower * 1.2; } }, desc: "Holder's Electric-type attacks have 1.2x power." }, "magoberry": { id: "magoberry", name: "Mago Berry", spritenum: 274, isBerry: true, naturalGift: { basePower: 60, type: "Ghost" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/2) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.heal(pokemon.maxhp/8); if (pokemon.getNature().minus === 'spe') { pokemon.addVolatile('confusion'); } }, desc: "Restores 1/8 max HP when at 1/2 max HP or less. May confuse. Single use." }, "magostberry": { id: "magostberry", name: "Magost Berry", spritenum: 275, isBerry: true, naturalGift: { basePower: 70, type: "Rock" }, desc: "No competitive use." }, "masterball": { id: "masterball", name: "Master Ball", spritenum: 276, desc: "The best Ball with the ultimate performance. It will catch any wild Pokemon." }, "meadowplate": { id: "meadowplate", name: "Meadow Plate", spritenum: 282, fling: { basePower: 90 }, onPlate: 'Grass', onBasePower: function(basePower, user, target, move) { if (move.type === 'Grass') { return basePower * 1.2; } }, desc: "Holder's Grass-type attacks have 1.2x power. Judgment is Grass-type." }, "mentalherb": { id: "mentalherb", name: "Mental Herb", spritenum: 285, fling: { basePower: 10, effect: function(pokemon) { var conditions = ['attract','taunt','encore','torment','disable']; for (var i=0; i 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Fire-type attack. Single use." }, "oddincense": { id: "oddincense", name: "Odd Incense", spritenum: 312, fling: { basePower: 10 }, onBasePower: function(basePower, user, target, move) { if (move.type === 'Psychic') { return basePower * 1.2; } }, desc: "Holder's Psychic-type attacks have 1.2x power." }, "oldamber": { id: "oldamber", name: "Old Amber", spritenum: 314, fling: { basePower: 100 }, desc: "Can be revived into Aerodactyl." }, "oranberry": { id: "oranberry", name: "Oran Berry", spritenum: 319, isBerry: true, naturalGift: { basePower: 60, type: "Poison" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/2) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.heal(10); }, desc: "Restores 10HP when at 1/2 max HP or less. Single use." }, "pamtreberry": { id: "pamtreberry", name: "Pamtre Berry", spritenum: 323, isBerry: true, naturalGift: { basePower: 70, type: "Steel" }, desc: "No competitive use." }, "parkball": { id: "parkball", name: "Park Ball", spritenum: 325, desc: "A special Poke Ball for the Pal Park." }, "passhoberry": { id: "passhoberry", name: "Passho Berry", spritenum: 329, isBerry: true, naturalGift: { basePower: 60, type: "Water" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Water' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Water-type attack. Single use." }, "payapaberry": { id: "payapaberry", name: "Payapa Berry", spritenum: 330, isBerry: true, naturalGift: { basePower: 60, type: "Psychic" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Psychic' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Psychic-type attack. Single use." }, "pechaberry": { id: "pechaberry", name: "Pecha Berry", spritenum: 333, isBerry: true, naturalGift: { basePower: 60, type: "Electric" }, onUpdate: function(pokemon) { if (pokemon.status === 'psn' || pokemon.status === 'tox') { pokemon.eatItem(); } }, onEat: function(pokemon) { if (pokemon.status === 'psn' || pokemon.status === 'tox') { pokemon.cureStatus(); } }, desc: "Holder is cured if it is poisoned. Single use." }, "persimberry": { id: "persimberry", name: "Persim Berry", spritenum: 334, isBerry: true, naturalGift: { basePower: 60, type: "Ground" }, onUpdate: function(pokemon) { if (pokemon.volatiles['confusion']) { pokemon.eatItem(); } }, onEat: function(pokemon) { pokemon.removeVolatile('confusion'); }, desc: "Holder is cured if it is confused. Single use." }, "petayaberry": { id: "petayaberry", name: "Petaya Berry", spritenum: 335, isBerry: true, naturalGift: { basePower: 80, type: "Poison" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/4 || (pokemon.hp <= pokemon.maxhp/2 && pokemon.ability === 'gluttony')) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.boost({spa:1}); }, desc: "Raises Sp. Atk by 1 when at 1/4 max HP or less. Single use." }, "pinapberry": { id: "pinapberry", name: "Pinap Berry", spritenum: 337, isBerry: true, naturalGift: { basePower: 70, type: "Grass" }, desc: "No competitive use." }, "plumefossil": { id: "plumefossil", name: "Plume Fossil", spritenum: 339, fling: { basePower: 100 }, desc: "Can be revived into Archen." }, "poisonbarb": { id: "poisonbarb", name: "Poison Barb", spritenum: 343, fling: { basePower: 70, status: 'psn' }, onBasePower: function(basePower, user, target, move) { if (move.type === 'Poison') { return basePower * 1.2; } }, desc: "Holder's Poison-type attacks have 1.2x power." }, "poisongem": { id: "poisongem", name: "Poison Gem", spritenum: 344, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Poison') { if (user.useItem()) { this.add('-enditem', user, 'Poison Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Poison-type attack will have 1.5x power. Single use." }, "pokeball": { id: "pokeball", name: "Poke Ball", spritenum: 345, desc: "A device for catching wild Pokemon. It is designed as a capsule system." }, "pomegberry": { id: "pomegberry", name: "Pomeg Berry", spritenum: 351, isBerry: true, naturalGift: { basePower: 70, type: "Ice" }, desc: "No competitive use." }, "powerherb": { id: "powerherb", onChargeMove: function(pokemon, target, move) { if (pokemon.useItem()) { this.debug('power herb - remove charge turn for '+move.id); return false; // skip charge turn } }, name: "Power Herb", spritenum: 358, fling: { basePower: 10 }, desc: "Holder's two-turn moves complete in one turn (except Sky Drop). Single use." }, "premierball": { id: "premierball", name: "Premier Ball", spritenum: 363, desc: "A rare Poke Ball that has been crafted to commemorate an event." }, "psychicgem": { id: "psychicgem", name: "Psychic Gem", spritenum: 369, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Psychic') { if (user.useItem()) { this.add('-enditem', user, 'Psychic Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Psychic-type attack will have 1.5x power. Single use." }, "qualotberry": { id: "qualotberry", name: "Qualot Berry", spritenum: 371, isBerry: true, naturalGift: { basePower: 70, type: "Poison" }, desc: "No competitive use." }, "quickball": { id: "quickball", name: "Quick Ball", spritenum: 372, desc: "A Poke Ball that provides a better catch rate at the start of a wild encounter." }, "quickclaw": { id: "quickclaw", onModifyPriority: function(priority, pokemon) { if (this.random(5) === 0) { this.add('-activate', pokemon, 'item: Quick Claw'); return priority + 0.1; } }, name: "Quick Claw", spritenum: 373, fling: { basePower: 80 }, desc: "Each turn, holder has a 20% chance to move first in its priority bracket." }, "quickpowder": { id: "quickpowder", name: "Quick Powder", spritenum: 374, fling: { basePower: 10 }, onModifySpe: function(spe, pokemon) { if (pokemon.template.species === 'Ditto') { return spe * 2; } }, desc: "If holder is a Ditto that hasn't Transformed, its Speed is doubled." }, "rabutaberry": { id: "rabutaberry", name: "Rabuta Berry", spritenum: 375, isBerry: true, naturalGift: { basePower: 70, type: "Ghost" }, desc: "No competitive use." }, "rarebone": { id: "rarebone", name: "Rare Bone", spritenum: 379, fling: { basePower: 100 }, desc: "No competitive use." }, "rawstberry": { id: "rawstberry", name: "Rawst Berry", spritenum: 381, isBerry: true, naturalGift: { basePower: 60, type: "Grass" }, onUpdate: function(pokemon) { if (pokemon.status === 'brn') { pokemon.eatItem(); } }, onEat: function(pokemon) { if (pokemon.status === 'brn') { pokemon.cureStatus(); } }, desc: "Holder is cured if it is burned. Single use." }, "razorclaw": { id: "razorclaw", name: "Razor Claw", spritenum: 382, fling: { basePower: 80 }, onModifyMove: function(move) { move.critRatio++; }, desc: "Holder's critical hit ratio is boosted by 1." }, "razorfang": { id: "razorfang", name: "Razor Fang", spritenum: 383, fling: { basePower: 30, volatileStatus: 'flinch' }, onModifyMove: function(move) { if (move.category !== "Status") { if (!move.secondaries) move.secondaries = []; for (var i=0; i 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Grass-type attack. Single use." }, "ringtarget": { id: "ringtarget", name: "Ring Target", spritenum: 410, fling: { basePower: 10 }, onModifyPokemon: function(pokemon) { pokemon.negateImmunity['Type'] = true; }, desc: "Holder's type immunities granted by its own typing are negated." }, "rockgem": { id: "rockgem", name: "Rock Gem", spritenum: 415, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Rock') { if (user.useItem()) { this.add('-enditem', user, 'Rock Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Rock-type attack will have 1.5x power. Single use." }, "rockincense": { id: "rockincense", name: "Rock Incense", spritenum: 416, fling: { basePower: 10 }, onBasePower: function(basePower, user, target, move) { if (move.type === 'Rock') { return basePower * 1.2; } }, desc: "Holder's Rock-type attacks have 1.2x power." }, "rockyhelmet": { id: "rockyhelmet", name: "Rocky Helmet", spritenum: 417, fling: { basePower: 60 }, onAfterDamageOrder: 2, onAfterDamage: function(damage, target, source, move) { if (source && source !== target && move && move.isContact) { this.damage(source.maxhp/6, source, target); } }, desc: "If holder is hit by a contact move, the attacker loses 1/6 of its max HP." }, "rootfossil": { id: "rootfossil", name: "Root Fossil", spritenum: 418, fling: { basePower: 100 }, desc: "Can be revived into Lileep." }, "roseincense": { id: "roseincense", name: "Rose Incense", spritenum: 419, fling: { basePower: 10 }, onBasePower: function(basePower, user, target, move) { if (move.type === 'Grass') { return basePower * 1.2; } }, desc: "Holder's Grass-type attacks have 1.2x power." }, "rowapberry": { id: "rowapberry", name: "Rowap Berry", spritenum: 420, isUnreleased: true, isBerry: true, naturalGift: { basePower: 80, type: "Dark" }, onAfterMoveSecondary: function(target, source, move) { if (source && source !== target && move && move.category === 'Special') { if (target.eatItem()) { this.damage(source.maxhp/8, source, target); } } }, onEat: function() { }, desc: "If holder is hit by a special move, attacker loses 1/8 of its max HP. Single use." }, "safariball": { id: "safariball", name: "Safari Ball", spritenum: 425, desc: "A special Poke Ball that is used only in the Safari Zone and Great Marsh." }, "salacberry": { id: "salacberry", name: "Salac Berry", spritenum: 426, isBerry: true, naturalGift: { basePower: 80, type: "Fighting" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/4 || (pokemon.hp <= pokemon.maxhp/2 && pokemon.ability === 'gluttony')) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.boost({spe:1}); }, desc: "Raises Speed by 1 when at 1/4 max HP or less. Single use." }, "scopelens": { id: "scopelens", name: "Scope Lens", spritenum: 429, fling: { basePower: 30 }, onModifyMove: function(move) { move.critRatio++; }, desc: "Holder's critical hit ratio is boosted by 1." }, "seaincense": { id: "seaincense", name: "Sea Incense", spritenum: 430, fling: { basePower: 10 }, onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Water') { return basePower * 1.2; } }, desc: "Holder's Water-type attacks have 1.2x power." }, "sharpbeak": { id: "sharpbeak", name: "Sharp Beak", spritenum: 436, fling: { basePower: 50 }, onBasePower: function(basePower, user, target, move) { if (move && move.type === 'Flying') { return basePower * 1.2; } }, desc: "Holder's Flying-type attacks have 1.2x power." }, "shedshell": { id: "shedshell", name: "Shed Shell", spritenum: 437, fling: { basePower: 10 }, onModifyPokemonPriority: -10, onModifyPokemon: function(pokemon) { pokemon.trapped = false; }, desc: "Holder may switch out even when trapped by another Pokemon." }, "shellbell": { id: "shellbell", name: "Shell Bell", spritenum: 438, fling: { basePower: 30 }, onAfterMoveSelf: function(source, target) { if (source.lastDamage > 0) { this.heal(source.lastDamage/8, source); } }, desc: "After an attack, holder gains 1/8 of the damage in HP dealt to other Pokemon." }, "shockdrive": { id: "shockdrive", name: "Shock Drive", spritenum: 442, fling: { basePower: 70 }, onDrive: 'Electric', desc: "Holder's Techno Blast is Electric-type." }, "shucaberry": { id: "shucaberry", name: "Shuca Berry", spritenum: 443, isBerry: true, naturalGift: { basePower: 60, type: "Ground" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Ground' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Ground-type attack. Single use." }, "silkscarf": { id: "silkscarf", name: "Silk Scarf", spritenum: 444, fling: { basePower: 10 }, onBasePower: function(basePower, user, target, move) { if (move.type === 'Normal') { return basePower * 1.2; } }, desc: "Holder's Normal-type attacks have 1.2x power." }, "silverpowder": { id: "silverpowder", name: "SilverPowder", spritenum: 447, fling: { basePower: 10 }, onBasePower: function(basePower, user, target, move) { if (move.type === 'Bug') { return basePower * 1.2; } }, desc: "Holder's Bug-type attacks have 1.2x power." }, "sitrusberry": { id: "sitrusberry", name: "Sitrus Berry", spritenum: 448, isBerry: true, naturalGift: { basePower: 60, type: "Psychic" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/2) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.heal(pokemon.maxhp/4); }, desc: "Restores 1/4 max HP when at 1/2 max HP or less. Single use." }, "skullfossil": { id: "skullfossil", name: "Skull Fossil", spritenum: 449, fling: { basePower: 100 }, desc: "Can be revived into Cranidos." }, "skyplate": { id: "skyplate", name: "Sky Plate", spritenum: 450, fling: { basePower: 90 }, onPlate: 'Flying', onBasePower: function(basePower, user, target, move) { if (move.type === 'Flying') { return basePower * 1.2; } }, desc: "Holder's Flying-type attacks have 1.2x power. Judgment is Flying-type." }, "smoothrock": { id: "smoothrock", name: "Smooth Rock", spritenum: 453, fling: { basePower: 10 }, desc: "Holder's use of Sandstorm lasts 8 turns instead of 5." }, "softsand": { id: "softsand", name: "Soft Sand", spritenum: 456, fling: { basePower: 10 }, onBasePower: function(basePower, user, target, move) { if (move.type === 'Ground') { return basePower * 1.2; } }, desc: "Holder's Ground-type attacks have 1.2x power." }, "souldew": { id: "souldew", name: "Soul Dew", spritenum: 459, fling: { basePower: 30 }, onModifySpA: function(spa, pokemon) { if (pokemon.template.species === 'Latios' || pokemon.template.species === 'Latias') { return spa * 1.5; } }, onModifySpD: function(spd, pokemon) { if (pokemon.template.species === 'Latios' || pokemon.template.species === 'Latias') { return spd * 1.5; } }, desc: "If holder is a Latias or a Latios, its Sp. Atk and Sp. Def are 1.5x." }, "spelltag": { id: "spelltag", name: "Spell Tag", spritenum: 461, fling: { basePower: 30 }, onBasePower: function(basePower, user, target, move) { if (move.type === 'Ghost') { return basePower * 1.2; } }, desc: "Holder's Ghost-type attacks have 1.2x power." }, "spelonberry": { id: "spelonberry", name: "Spelon Berry", spritenum: 462, isBerry: true, naturalGift: { basePower: 70, type: "Dark" }, desc: "No competitive use." }, "splashplate": { id: "splashplate", name: "Splash Plate", spritenum: 463, fling: { basePower: 90 }, onPlate: 'Water', onBasePower: function(basePower, user, target, move) { if (move.type === 'Water') { return basePower * 1.2; } }, desc: "Holder's Water-type attacks have 1.2x power. Judgment is Water-type." }, "spookyplate": { id: "spookyplate", name: "Spooky Plate", spritenum: 464, fling: { basePower: 90 }, onPlate: 'Ghost', onBasePower: function(basePower, user, target, move) { if (move.type === 'Ghost') { return basePower * 1.2; } }, desc: "Holder's Ghost-type attacks have 1.2x power. Judgment is Ghost-type." }, "sportball": { id: "sportball", name: "Sport Ball", spritenum: 465, desc: "A special Poke Ball for the Bug-Catching Contest." }, "starfberry": { id: "starfberry", name: "Starf Berry", spritenum: 472, isBerry: true, naturalGift: { basePower: 80, type: "Psychic" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/4 || (pokemon.hp <= pokemon.maxhp/2 && pokemon.ability === 'gluttony')) { pokemon.eatItem(); } }, onEat: function(pokemon) { var stats = []; for (var i in pokemon.boosts) { if (i !== 'accuracy' && i !== 'evasion' && pokemon.boosts[i] < 6) { stats.push(i); } } if (stats.length) { var i = stats[this.random(stats.length)]; var boost = {}; boost[i] = 2; this.boost(boost); } }, desc: "Raises a random stat by 2 when at 1/4 max HP or less. Single use." }, "steelgem": { id: "steelgem", name: "Steel Gem", spritenum: 473, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Steel') { if (user.useItem()) { this.add('-enditem', user, 'Steel Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Steel-type attack will have 1.5x power. Single use." }, "stick": { id: "stick", name: "Stick", fling: { basePower: 60 }, spritenum: 475, onModifyMove: function(move, user) { if (user.template.species === 'Farfetch\'d') { move.critRatio += 2; } }, desc: "If holder is a Farfetch'd, its critical hit ratio is boosted by 2." }, "stickybarb": { id: "stickybarb", name: "Sticky Barb", spritenum: 476, fling: { basePower: 80 }, onResidualOrder: 26, onResidualSubOrder: 2, onResidual: function(pokemon) { this.damage(pokemon.maxhp/8); }, onHit: function(target, source, move) { if (source && source !== target && !source.item && move && move.isContact) { var barb = target.takeItem(); source.setItem(barb); // no message for Sticky Barb changing hands } }, desc: "Each turn, holder loses 1/8 max HP. An attacker making contact can receive it." }, "stoneplate": { id: "stoneplate", name: "Stone Plate", spritenum: 477, fling: { basePower: 90 }, onPlate: 'Rock', onBasePower: function(basePower, user, target, move) { if (move.type === 'Rock') { return basePower * 1.2; } }, desc: "Holder's Rock-type attacks have 1.2x power. Judgment is Rock-type." }, "tamatoberry": { id: "tamatoberry", name: "Tamato Berry", spritenum: 486, isBerry: true, naturalGift: { basePower: 70, type: "Psychic" }, desc: "No competitive use." }, "tangaberry": { id: "tangaberry", name: "Tanga Berry", spritenum: 487, isBerry: true, naturalGift: { basePower: 60, type: "Bug" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Bug' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Bug-type attack. Single use." }, "thickclub": { id: "thickclub", name: "Thick Club", spritenum: 491, fling: { basePower: 90 }, onModifyAtk: function(atk, pokemon) { if (pokemon.template.species === 'Cubone' || pokemon.template.species === 'Marowak') { return atk * 2; } }, desc: "If holder is a Cubone or a Marowak, its Attack is doubled." }, "timerball": { id: "timerball", name: "Timer Ball", spritenum: 494, desc: "A Poke Ball that becomes better the more turns there are in a battle." }, "toxicorb": { id: "toxicorb", name: "Toxic Orb", spritenum: 515, fling: { basePower: 30, status: 'tox' }, onResidualOrder: 26, onResidualSubOrder: 2, onResidual: function(pokemon) { if (!pokemon.status && !pokemon.hasType('Poison') && !pokemon.hasType('Steel') && pokemon.ability !== 'immunity') { this.add('-activate', pokemon, 'item: Toxic Orb'); pokemon.trySetStatus('tox'); } }, desc: "At the end of every turn, this item attempts to badly poison the holder." }, "toxicplate": { id: "toxicplate", name: "Toxic Plate", spritenum: 516, fling: { basePower: 90 }, onPlate: 'Poison', onBasePower: function(basePower, user, target, move) { if (move.type === 'Poison') { return basePower * 1.2; } }, desc: "Holder's Poison-type attacks have 1.2x power. Judgment is Poison-type." }, "twistedspoon": { id: "twistedspoon", name: "TwistedSpoon", spritenum: 520, fling: { basePower: 30 }, onBasePower: function(basePower, user, target, move) { if (move.type === 'Psychic') { return basePower * 1.2; } }, desc: "Holder's Psychic-type attacks have 1.2x power." }, "ultraball": { id: "ultraball", name: "Ultra Ball", spritenum: 521, desc: "An ultra-performance Ball that provides a higher catch rate than a Great Ball." }, "wacanberry": { id: "wacanberry", name: "Wacan Berry", spritenum: 526, isBerry: true, naturalGift: { basePower: 60, type: "Electric" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Electric' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Electric-type attack. Single use." }, "watergem": { id: "watergem", name: "Water Gem", spritenum: 528, isGem: true, onBasePower: function(basePower, user, target, move) { if (move.type === 'Water') { if (user.useItem()) { this.add('-enditem', user, 'Water Gem', '[from] gem', '[move] '+move.name); return basePower * 1.5; } } }, desc: "Holder's first successful Water-type attack will have 1.5x power. Single use." }, "watmelberry": { id: "watmelberry", name: "Watmel Berry", spritenum: 530, isBerry: true, naturalGift: { basePower: 80, type: "Fire" }, desc: "No competitive use." }, "waveincense": { id: "waveincense", name: "Wave Incense", spritenum: 531, fling: { basePower: 10 }, onBasePower: function(basePower, user, target, move) { if (move.type === 'Water') { return basePower * 1.2; } }, desc: "Holder's Water-type attacks have 1.2x power." }, "wepearberry": { id: "wepearberry", name: "Wepear Berry", spritenum: 533, isBerry: true, naturalGift: { basePower: 70, type: "Electric" }, desc: "No competitive use." }, "whiteherb": { id: "whiteherb", name: "White Herb", spritenum: 535, fling: { basePower: 10, effect: function(pokemon) { var activate = false; var boosts = {}; for (var i in pokemon.boosts) { if (pokemon.boosts[i] < 0) { activate = true; boosts[i] = 0; } } if (activate) { pokemon.setBoost(boosts); } } }, onUpdate: function(pokemon) { var activate = false; var boosts = {}; for (var i in pokemon.boosts) { if (pokemon.boosts[i] < 0) { activate = true; boosts[i] = 0; } } if (activate && pokemon.useItem()) { pokemon.setBoost(boosts); this.add('-restoreboost', pokemon, '[silent]'); } }, desc: "Restores all lowered stat stages to 0 when one is less than 0. Single use." }, "widelens": { id: "widelens", name: "Wide Lens", spritenum: 537, fling: { basePower: 10 }, onModifyMove: function(move) { if (typeof move.accuracy === 'number') { move.accuracy *= 1.1; } }, desc: "The accuracy of attacks by the holder is 1.1x." }, "wikiberry": { id: "wikiberry", name: "Wiki Berry", spritenum: 538, isBerry: true, naturalGift: { basePower: 60, type: "Rock" }, onUpdate: function(pokemon) { if (pokemon.hp <= pokemon.maxhp/2) { pokemon.eatItem(); } }, onEat: function(pokemon) { this.heal(pokemon.maxhp/8); if (pokemon.getNature().minus === 'spa') { pokemon.addVolatile('confusion'); } }, desc: "Restores 1/8 max HP when at 1/2 max HP or less. May confuse. Single use." }, "wiseglasses": { id: "wiseglasses", name: "Wise Glasses", spritenum: 539, fling: { basePower: 10 }, onBasePower: function(basePower, user, target, move) { if (move.category === 'Special') { return basePower * 1.1; } }, desc: "Holder's special attacks have 1.1x power." }, "yacheberry": { id: "yacheberry", name: "Yache Berry", spritenum: 567, isBerry: true, naturalGift: { basePower: 60, type: "Ice" }, onSourceBasePower: function(basePower, user, target, move) { if (move.type === 'Ice' && this.getEffectiveness(move.type, target) > 0 && !target.volatiles['substitute']) { if (target.eatItem()) { this.debug('-50% reduction'); return basePower * 0.5; } } }, onEat: function() { }, desc: "Halves damage taken from a super effective Ice-type attack. Single use." }, "zapplate": { id: "zapplate", name: "Zap Plate", spritenum: 572, fling: { basePower: 90 }, onPlate: 'Electric', onBasePower: function(basePower, user, target, move) { if (move.type === 'Electric') { return basePower * 1.2; } }, desc: "Holder's Electric-type attacks have 1.2x power. Judgment is Electric-type." }, "zoomlens": { id: "zoomlens", name: "Zoom Lens", spritenum: 574, fling: { basePower: 10 }, onModifyMove: function(move, user, target) { if (typeof move.accuracy === 'number' && !this.willMove(target)) { this.debug('Zoom Lens boosting accuracy'); move.accuracy *= 1.2; } }, desc: "The accuracy of attacks by the holder is 1.2x if it moves after the target." } };