{ "version": 3, "sources": ["../../../../../data/mods/partnersincrime/moves.ts"], "sourcesContent": ["export const Moves: {[k: string]: ModdedMoveData} = {\r\n\tgastroacid: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\t// Ability suppression implemented in Pokemon.ignoringAbility() within sim/pokemon.js\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tif (pokemon.hasItem('Ability Shield')) return false;\r\n\t\t\t\tthis.add('-endability', pokemon);\r\n\t\t\t\tthis.singleEvent('End', pokemon.getAbility(), pokemon.abilityState, pokemon, pokemon, 'gastroacid');\r\n\t\t\t\tconst keys = Object.keys(pokemon.volatiles).filter(x => x.startsWith(\"ability:\"));\r\n\t\t\t\tif (keys.length) {\r\n\t\t\t\t\tfor (const abil of keys) {\r\n\t\t\t\t\t\tpokemon.removeVolatile(abil);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tgrudge: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tonStart(pokemon) {\r\n\t\t\t\tthis.add('-singlemove', pokemon, 'Grudge');\r\n\t\t\t},\r\n\t\t\tonFaint(target, source, effect) {\r\n\t\t\t\tif (!source || source.fainted || !effect) return;\r\n\t\t\t\tif (effect.effectType === 'Move' && !effect.flags['futuremove'] && source.lastMove) {\r\n\t\t\t\t\tlet move: Move = source.lastMove;\r\n\t\t\t\t\tif (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove);\r\n\r\n\t\t\t\t\tfor (const moveSlot of source.moveSlots) {\r\n\t\t\t\t\t\tif (moveSlot.id === move.id) {\r\n\t\t\t\t\t\t\tmoveSlot.pp = 0;\r\n\t\t\t\t\t\t\tif (!source.m.curMoves.includes(moveSlot.id) && source.m.trackPP.get(moveSlot.id)) {\r\n\t\t\t\t source.m.trackPP.set(moveSlot.id, moveSlot.maxpp - moveSlot.pp);\r\n\t\t\t\t }\r\n\t\t\t\t\t\t\tthis.add('-activate', source, 'move: Grudge', move.name);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBeforeMovePriority: 100,\r\n\t\t\tonBeforeMove(pokemon) {\r\n\t\t\t\tthis.debug('removing Grudge before attack');\r\n\t\t\t\tpokemon.removeVolatile('grudge');\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tlunardance: {\r\n\t\tinherit: true,\r\n\t\tcondition: {\r\n\t\t\tonSwap(target) {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!target.fainted && (\r\n\t\t\t\t\t\ttarget.hp < target.maxhp ||\r\n\t\t\t\t\t\ttarget.status ||\r\n\t\t\t\t\t\ttarget.moveSlots.some(moveSlot => moveSlot.pp < moveSlot.maxpp)\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\ttarget.heal(target.maxhp);\r\n\t\t\t\t\ttarget.clearStatus();\r\n\t\t\t\t\tfor (const moveSlot of target.moveSlots) {\r\n\t\t\t\t\t\tmoveSlot.pp = moveSlot.maxpp;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (const key of target.m.trackPP.keys()) {\r\n\t\t\t\t\t\ttarget.m.trackPP.set(key, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.add('-heal', target, target.getHealth, '[from] move: Lunar Dance');\r\n\t\t\t\t\ttarget.side.removeSlotCondition(target, 'lunardance');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tmimic: {\r\n\t\tinherit: true,\r\n\t\tonHit(target, source) {\r\n\t\t\tconst move = target.lastMove;\r\n\t\t\tif (source.transformed || !move || move.flags['failmimic'] || source.moves.includes(move.id)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (move.isZ || move.isMax) return false;\r\n\t\t\tconst mimicIndex = source.moves.indexOf('mimic');\r\n\t\t\tif (mimicIndex < 0) return false;\r\n\t\t\tif (!source.m.curMoves.includes('mimic')) return false;\r\n\r\n\t\t\tconst mimickedMove = {\r\n\t\t\t\tmove: move.name,\r\n\t\t\t\tid: move.id,\r\n\t\t\t\tpp: move.pp,\r\n\t\t\t\tmaxpp: move.pp,\r\n\t\t\t\ttarget: move.target,\r\n\t\t\t\tdisabled: false,\r\n\t\t\t\tused: false,\r\n\t\t\t\tvirtual: true,\r\n\t\t\t};\r\n\t\t\tsource.moveSlots[mimicIndex] = mimickedMove;\r\n\t\t\tsource.m.curMoves[mimicIndex] = mimickedMove.id;\r\n\t\t\tthis.add('-start', source, 'Mimic', move.name);\r\n\t\t},\r\n\t},\r\n\tsketch: {\r\n\t\tinherit: true,\r\n\t\tonHit(target, source) {\r\n\t\t\tconst disallowedMoves = ['chatter', 'sketch', 'struggle'];\r\n\t\t\tconst move = target.lastMove;\r\n\t\t\tif (source.transformed || !move || source.moves.includes(move.id)) return false;\r\n\t\t\tif (disallowedMoves.includes(move.id) || move.isZ || move.isMax) return false;\r\n\t\t\tconst sketchIndex = source.moves.indexOf('sketch');\r\n\t\t\tif (sketchIndex < 0) return false;\r\n\t\t\tif (!source.m.curMoves.includes('sketch')) return false;\r\n\t\t\tconst sketchedMove = {\r\n\t\t\t\tmove: move.name,\r\n\t\t\t\tid: move.id,\r\n\t\t\t\tpp: move.pp,\r\n\t\t\t\tmaxpp: move.pp,\r\n\t\t\t\ttarget: move.target,\r\n\t\t\t\tdisabled: false,\r\n\t\t\t\tused: false,\r\n\t\t\t};\r\n\t\t\tsource.moveSlots[sketchIndex] = sketchedMove;\r\n\t\t\tsource.baseMoveSlots[sketchIndex] = sketchedMove;\r\n\t\t\tsource.m.curMoves[sketchIndex] = sketchedMove.id;\r\n\t\t\tthis.add('-activate', source, 'move: Sketch', move.name);\r\n\t\t},\r\n\t},\r\n\tskillswap: {\r\n\t\tinherit: true,\r\n\t\tonHit(target, source, move) {\r\n\t\t\tconst targetAbility = target.getAbility();\r\n\t\t\tconst sourceAbility = source.getAbility();\r\n\t\t\tconst ally = source.side.active.find(mon => mon && mon !== source && !mon.fainted);\r\n\t\t\tconst foeAlly = target.side.active.find(mon => mon && mon !== target && !mon.fainted);\r\n\t\t\tif (target.isAlly(source)) {\r\n\t\t\t\tthis.add('-activate', source, 'move: Skill Swap', '', '', '[of] ' + target);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-activate', source, 'move: Skill Swap', targetAbility, sourceAbility, '[of] ' + target);\r\n\t\t\t}\r\n\t\t\tthis.singleEvent('End', sourceAbility, source.abilityState, source);\r\n\t\t\tif (ally?.m.innate) {\r\n\t\t\t\tally.removeVolatile(ally.m.innate);\r\n\t\t\t\tdelete ally.m.innate;\r\n\t\t\t}\r\n\r\n\t\t\tthis.singleEvent('End', targetAbility, target.abilityState, target);\r\n\t\t\tif (foeAlly?.m.innate) {\r\n\t\t\t\tfoeAlly.removeVolatile(foeAlly.m.innate);\r\n\t\t\t\tdelete foeAlly.m.innate;\r\n\t\t\t}\r\n\r\n\t\t\tsource.ability = targetAbility.id;\r\n\t\t\tsource.abilityState = {id: this.toID(source.ability), target: source};\r\n\t\t\tif (source.m.innate && source.m.innate.endsWith(targetAbility.id)) {\r\n\t\t\t\tsource.removeVolatile(source.m.innate);\r\n\t\t\t\tdelete source.m.innate;\r\n\t\t\t}\r\n\t\t\tif (ally && ally.ability !== targetAbility.id) {\r\n\t\t\t\tif (!source.m.innate) {\r\n\t\t\t\t\tsource.m.innate = 'ability:' + ally.getAbility().id;\r\n\t\t\t\t\tsource.addVolatile(source.m.innate);\r\n\t\t\t\t}\r\n\t\t\t\tally.m.innate = 'ability:' + targetAbility.id;\r\n\t\t\t\tally.addVolatile(ally.m.innate);\r\n\t\t\t}\r\n\r\n\t\t\ttarget.ability = sourceAbility.id;\r\n\t\t\ttarget.abilityState = {id: this.toID(target.ability), target: target};\r\n\t\t\tif (target.m.innate && target.m.innate.endsWith(sourceAbility.id)) {\r\n\t\t\t\ttarget.removeVolatile(target.m.innate);\r\n\t\t\t\tdelete target.m.innate;\r\n\t\t\t}\r\n\t\t\tif (foeAlly && foeAlly.ability !== sourceAbility.id) {\r\n\t\t\t\tif (!target.m.innate) {\r\n\t\t\t\t\ttarget.m.innate = 'ability:' + foeAlly.getAbility().id;\r\n\t\t\t\t\ttarget.addVolatile(target.m.innate);\r\n\t\t\t\t}\r\n\t\t\t\tfoeAlly.m.innate = 'ability:' + sourceAbility.id;\r\n\t\t\t\tfoeAlly.addVolatile(foeAlly.m.innate);\r\n\t\t\t}\r\n\r\n\t\t\tif (!target.isAlly(source)) target.volatileStaleness = 'external';\r\n\t\t\tthis.singleEvent('Start', targetAbility, source.abilityState, source);\r\n\t\t\tthis.singleEvent('Start', sourceAbility, target.abilityState, target);\r\n\t\t},\r\n\t},\r\n};\r\n"], "mappings": "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", "names": [] }