"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 = { adamantorb: { inherit: true, onBasePower(basePower, user, target, move) { if (move && user.species.name === "Dialga" && (move.type === "Steel" || move.type === "Dragon")) { return this.chainModify(1.2); } } }, bigroot: { inherit: true, onTryHeal(damage, target, source, effect) { const heals = ["drain", "leechseed", "ingrain", "aquaring"]; if (heals.includes(effect.id)) { return Math.floor(damage * 1.3); } } }, blacksludge: { inherit: true, onResidualOrder: 10, onResidualSubOrder: 4 }, brightpowder: { inherit: true, onModifyAccuracyPriority: 5, onModifyAccuracy(accuracy) { if (typeof accuracy !== "number") return; this.debug("brightpowder - decreasing accuracy"); return accuracy * 0.9; } }, choiceband: { inherit: true, onStart() { }, onModifyMove() { }, onAfterMove(pokemon) { pokemon.addVolatile("choicelock"); } }, choicescarf: { inherit: true, onStart() { }, onModifyMove() { }, onAfterMove(pokemon) { pokemon.addVolatile("choicelock"); } }, choicespecs: { inherit: true, onStart() { }, onModifyMove() { }, onAfterMove(pokemon) { pokemon.addVolatile("choicelock"); } }, chopleberry: { inherit: true, onSourceModifyDamage(damage, source, target, move) { if (move.causedCrashDamage) return damage; if (move.type === "Fighting" && target.getMoveHitData(move).typeMod > 0) { const hitSub = target.volatiles["substitute"] && !move.flags["bypasssub"]; if (hitSub) return; if (target.eatItem()) { this.debug("-50% reduction"); this.add("-enditem", target, this.effect, "[weaken]"); return this.chainModify(0.5); } } } }, custapberry: { inherit: true, onFractionalPriority() { }, onBeforeTurn(pokemon) { if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.hp <= pokemon.maxhp / 2 && pokemon.ability === "gluttony") { const action = this.queue.willMove(pokemon); if (!action) return; this.queue.insertChoice({ choice: "event", event: "Custap", priority: action.priority + 0.1, pokemon: action.pokemon, move: action.move, targetLoc: action.targetLoc }); } }, onCustap(pokemon) { const action = this.queue.willMove(pokemon); this.debug(`custap action: ${action?.moveid}`); if (action && pokemon.eatItem()) { this.queue.cancelAction(pokemon); this.add("-message", "Custap Berry activated."); this.runAction(action); } } }, deepseascale: { inherit: true, onModifySpD(spd, pokemon) { if (pokemon.species.name === "Clamperl") { return this.chainModify(2); } } }, deepseatooth: { inherit: true, onModifySpA(spa, pokemon) { if (pokemon.species.name === "Clamperl") { return this.chainModify(2); } } }, dracoplate: { inherit: true, onTakeItem: true }, dreadplate: { inherit: true, onTakeItem: true }, earthplate: { inherit: true, onTakeItem: true }, fastball: { inherit: true, isNonstandard: null }, fistplate: { inherit: true, onTakeItem: true }, flameorb: { inherit: true, onResidualOrder: 10, onResidualSubOrder: 20 }, flameplate: { inherit: true, onTakeItem: true }, focussash: { inherit: true, onDamage() { }, onTryHit(target, source, move) { if (target !== source && target.hp === target.maxhp) { target.addVolatile("focussash"); } }, condition: { duration: 1, onDamage(damage, target, source, effect) { if (effect && effect.effectType === "Move" && damage >= target.hp) { this.effectState.activated = true; return target.hp - 1; } }, onAfterMoveSecondary(target) { if (this.effectState.activated) target.useItem(); target.removeVolatile("focussash"); } } }, griseousorb: { inherit: true, onBasePower(basePower, user, target, move) { if (user.species.num === 487 && (move.type === "Ghost" || move.type === "Dragon")) { return this.chainModify(1.2); } } }, heavyball: { inherit: true, isNonstandard: null }, icicleplate: { inherit: true, onTakeItem: true }, insectplate: { inherit: true, onTakeItem: true }, ironball: { inherit: true, onEffectiveness() { } }, ironplate: { inherit: true, onTakeItem: true }, kingsrock: { inherit: true, onModifyMove(move) { const affectedByKingsRock = [ "aerialace", "aeroblast", "aircutter", "airslash", "aquajet", "aquatail", "armthrust", "assurance", "attackorder", "aurasphere", "avalanche", "barrage", "beatup", "bide", "bind", "blastburn", "bonerush", "bonemerang", "bounce", "bravebird", "brickbreak", "brine", "bugbite", "bulletpunch", "bulletseed", "chargebeam", "clamp", "closecombat", "cometpunch", "crabhammer", "crosschop", "crosspoison", "crushgrip", "cut", "darkpulse", "dig", "discharge", "dive", "doublehit", "doublekick", "doubleslap", "doubleedge", "dracometeor", "dragonbreath", "dragonclaw", "dragonpulse", "dragonrage", "dragonrush", "drainpunch", "drillpeck", "earthpower", "earthquake", "eggbomb", "endeavor", "eruption", "explosion", "extremespeed", "falseswipe", "feintattack", "firefang", "firespin", "flail", "flashcannon", "fly", "forcepalm", "frenzyplant", "frustration", "furyattack", "furycutter", "furyswipes", "gigaimpact", "grassknot", "gunkshot", "gust", "gyroball", "hammerarm", "headsmash", "hiddenpower", "highjumpkick", "hornattack", "hydrocannon", "hydropump", "hyperbeam", "iceball", "icefang", "iceshard", "iciclespear", "ironhead", "judgment", "jumpkick", "karatechop", "lastresort", "lavaplume", "leafblade", "leafstorm", "lowkick", "machpunch", "magicalleaf", "magmastorm", "magnetbomb", "magnitude", "megakick", "megapunch", "megahorn", "meteormash", "mirrorshot", "mudbomb", "mudshot", "muddywater", "nightshade", "nightslash", "ominouswind", "outrage", "overheat", "payday", "payback", "peck", "petaldance", "pinmissile", "pluck", "poisonjab", "poisontail", "pound", "powergem", "powerwhip", "psychoboost", "psychocut", "psywave", "punishment", "quickattack", "rage", "rapidspin", "razorleaf", "razorwind", "return", "revenge", "reversal", "roaroftime", "rockblast", "rockclimb", "rockthrow", "rockwrecker", "rollingkick", "rollout", "sandtomb", "scratch", "seedbomb", "seedflare", "seismictoss", "selfdestruct", "shadowclaw", "shadowforce", "shadowpunch", "shadowsneak", "shockwave", "signalbeam", "silverwind", "skullbash", "skyattack", "skyuppercut", "slam", "slash", "snore", "solarbeam", "sonicboom", "spacialrend", "spikecannon", "spitup", "steelwing", "stoneedge", "strength", "struggle", "submission", "suckerpunch", "surf", "swift", "tackle", "takedown", "thrash", "thunderfang", "triplekick", "trumpcard", "twister", "uturn", "uproar", "vacuumwave", "visegrip", "vinewhip", "vitalthrow", "volttackle", "wakeupslap", "watergun", "waterpulse", "waterfall", "weatherball", "whirlpool", "wingattack", "woodhammer", "wrap", "wringout", "xscissor", "zenheadbutt" ]; if (affectedByKingsRock.includes(move.id)) { if (!move.secondaries) move.secondaries = []; move.secondaries.push({ chance: 10, volatileStatus: "flinch" }); } } }, laxincense: { inherit: true, onModifyAccuracyPriority: 5, onModifyAccuracy(accuracy) { if (typeof accuracy !== "number") return; this.debug("lax incense - decreasing accuracy"); return accuracy * 0.9; } }, leftovers: { inherit: true, onResidualOrder: 10, onResidualSubOrder: 4 }, levelball: { inherit: true, isNonstandard: null }, lifeorb: { inherit: true, onModifyDamage() { }, onAfterMoveSecondarySelf() { }, onBasePower(basePower, user, target) { if (!target.volatiles["substitute"]) { user.addVolatile("lifeorb"); } return basePower; }, onModifyDamagePhase2(damage, source, target, move) { if (!move.flags["futuremove"]) return damage * 1.3; }, condition: { duration: 1, onAfterMoveSecondarySelf(source, target, move) { if (move && move.effectType === "Move" && source?.volatiles["lifeorb"]) { this.damage(source.baseMaxhp / 10, source, source, this.dex.items.get("lifeorb")); source.removeVolatile("lifeorb"); } } } }, lightball: { inherit: true, onModifyAtk() { }, onModifySpA() { }, onBasePower(basePower, pokemon) { if (pokemon.species.name === "Pikachu") { return this.chainModify(2); } } }, loveball: { inherit: true, isNonstandard: null }, luckypunch: { inherit: true, onModifyCritRatio(critRatio, user) { if (user.species.name === "Chansey") { return critRatio + 2; } } }, lureball: { inherit: true, isNonstandard: null }, lustrousorb: { inherit: true, onBasePower(basePower, user, target, move) { if (move && user.species.name === "Palkia" && (move.type === "Water" || move.type === "Dragon")) { return this.chainModify(1.2); } } }, meadowplate: { inherit: true, onTakeItem: true }, mentalherb: { inherit: true, fling: { basePower: 10, effect(pokemon) { if (pokemon.removeVolatile("attract")) { this.add("-end", pokemon, "move: Attract", "[from] item: Mental Herb"); } } }, onUpdate(pokemon) { if (pokemon.volatiles["attract"] && pokemon.useItem()) { pokemon.removeVolatile("attract"); this.add("-end", pokemon, "move: Attract", "[from] item: Mental Herb"); } } }, metronome: { inherit: true, condition: { onStart(pokemon) { this.effectState.numConsecutive = 0; this.effectState.lastMove = ""; }, onTryMovePriority: -2, onTryMove(pokemon, target, move) { if (!pokemon.hasItem("metronome")) { pokemon.removeVolatile("metronome"); return; } if (this.effectState.lastMove === move.id && pokemon.moveLastTurnResult) { this.effectState.numConsecutive++; } else { this.effectState.numConsecutive = 0; } this.effectState.lastMove = move.id; }, onModifyDamagePhase2(damage, source, target, move) { return damage * (1 + this.effectState.numConsecutive / 10); } } }, micleberry: { inherit: true, condition: { duration: 2, onSourceModifyAccuracyPriority: 3, onSourceModifyAccuracy(accuracy, target, source) { this.add("-enditem", source, "Micle Berry"); source.removeVolatile("micleberry"); if (typeof accuracy === "number") { return accuracy * 1.2; } } } }, mindplate: { inherit: true, onTakeItem: true }, moonball: { inherit: true, isNonstandard: null }, razorfang: { inherit: true, onModifyMove(move) { const affectedByRazorFang = [ "aerialace", "aeroblast", "aircutter", "airslash", "aquajet", "aquatail", "armthrust", "assurance", "attackorder", "aurasphere", "avalanche", "barrage", "beatup", "bide", "bind", "blastburn", "bonerush", "bonemerang", "bounce", "bravebird", "brickbreak", "brine", "bugbite", "bulletpunch", "bulletseed", "chargebeam", "clamp", "closecombat", "cometpunch", "crabhammer", "crosschop", "crosspoison", "crushgrip", "cut", "darkpulse", "dig", "discharge", "dive", "doublehit", "doublekick", "doubleslap", "doubleedge", "dracometeor", "dragonbreath", "dragonclaw", "dragonpulse", "dragonrage", "dragonrush", "drainpunch", "drillpeck", "earthpower", "earthquake", "eggbomb", "endeavor", "eruption", "explosion", "extremespeed", "falseswipe", "feintattack", "firefang", "firespin", "flail", "flashcannon", "fly", "forcepalm", "frenzyplant", "frustration", "furyattack", "furycutter", "furyswipes", "gigaimpact", "grassknot", "gunkshot", "gust", "gyroball", "hammerarm", "headsmash", "hiddenpower", "highjumpkick", "hornattack", "hydrocannon", "hydropump", "hyperbeam", "iceball", "icefang", "iceshard", "iciclespear", "ironhead", "judgment", "jumpkick", "karatechop", "lastresort", "lavaplume", "leafblade", "leafstorm", "lowkick", "machpunch", "magicalleaf", "magmastorm", "magnetbomb", "magnitude", "megakick", "megapunch", "megahorn", "meteormash", "mirrorshot", "mudbomb", "mudshot", "muddywater", "nightshade", "nightslash", "ominouswind", "outrage", "overheat", "payday", "payback", "peck", "petaldance", "pinmissile", "pluck", "poisonjab", "poisontail", "pound", "powergem", "powerwhip", "psychoboost", "psychocut", "psywave", "punishment", "quickattack", "rage", "rapidspin", "razorleaf", "razorwind", "return", "revenge", "reversal", "roaroftime", "rockblast", "rockclimb", "rockthrow", "rockwrecker", "rollingkick", "rollout", "sandtomb", "scratch", "seedbomb", "seedflare", "seismictoss", "selfdestruct", "shadowclaw", "shadowforce", "shadowpunch", "shadowsneak", "shockwave", "signalbeam", "silverwind", "skullbash", "skyattack", "skyuppercut", "slam", "slash", "snore", "solarbeam", "sonicboom", "spacialrend", "spikecannon", "spitup", "steelwing", "stoneedge", "strength", "struggle", "submission", "suckerpunch", "surf", "swift", "tackle", "takedown", "thrash", "thunderfang", "triplekick", "trumpcard", "twister", "uturn", "uproar", "vacuumwave", "visegrip", "vinewhip", "vitalthrow", "volttackle", "wakeupslap", "watergun", "waterpulse", "waterfall", "weatherball", "whirlpool", "wingattack", "woodhammer", "wrap", "wringout", "xscissor", "zenheadbutt" ]; if (affectedByRazorFang.includes(move.id)) { if (!move.secondaries) move.secondaries = []; move.secondaries.push({ chance: 10, volatileStatus: "flinch" }); } } }, skyplate: { inherit: true, onTakeItem: true }, splashplate: { inherit: true, onTakeItem: true }, spookyplate: { inherit: true, onTakeItem: true }, sportball: { inherit: true, isNonstandard: null }, stick: { inherit: true, onModifyCritRatio(critRatio, user) { if (user.species.id === "farfetchd") { return critRatio + 2; } } }, stickybarb: { inherit: true, onResidualOrder: 10, onResidualSubOrder: 20 }, stoneplate: { inherit: true, onTakeItem: true }, thickclub: { inherit: true, onModifyAtk(atk, pokemon) { if (pokemon.species.name === "Cubone" || pokemon.species.name === "Marowak") { return this.chainModify(2); } } }, toxicorb: { inherit: true, onResidualOrder: 10, onResidualSubOrder: 20 }, toxicplate: { inherit: true, onTakeItem: true }, widelens: { inherit: true, onSourceModifyAccuracyPriority: 4, onSourceModifyAccuracy(accuracy) { if (typeof accuracy === "number") { return accuracy * 1.1; } } }, zapplate: { inherit: true, onTakeItem: true }, zoomlens: { inherit: true, onSourceModifyAccuracyPriority: 4, onSourceModifyAccuracy(accuracy, target) { if (typeof accuracy === "number" && !this.queue.willMove(target)) { this.debug("Zoom Lens boosting accuracy"); return accuracy * 1.2; } } } }; //# sourceMappingURL=items.js.map