{ "version": 3, "sources": ["../../../../../data/mods/gen3/abilities.ts"], "sourcesContent": ["export const Abilities: {[k: string]: ModdedAbilityData} = {\r\n\tcutecharm: {\r\n\t\tinherit: true,\r\n\t\tonDamagingHit(damage, target, source, move) {\r\n\t\t\tif (damage && move.flags['contact']) {\r\n\t\t\t\tif (this.randomChance(1, 3)) {\r\n\t\t\t\t\tsource.addVolatile('attract', target);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\teffectspore: {\r\n\t\tinherit: true,\r\n\t\tonDamagingHit(damage, target, source, move) {\r\n\t\t\tif (damage && move.flags['contact'] && !source.status) {\r\n\t\t\t\tconst r = this.random(300);\r\n\t\t\t\tif (r < 10) {\r\n\t\t\t\t\tsource.setStatus('slp', target);\r\n\t\t\t\t} else if (r < 20) {\r\n\t\t\t\t\tsource.setStatus('par', target);\r\n\t\t\t\t} else if (r < 30) {\r\n\t\t\t\t\tsource.setStatus('psn', target);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tflamebody: {\r\n\t\tinherit: true,\r\n\t\tonDamagingHit(damage, target, source, move) {\r\n\t\t\tif (damage && move.flags['contact']) {\r\n\t\t\t\tif (this.randomChance(1, 3)) {\r\n\t\t\t\t\tsource.trySetStatus('brn', target);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tflashfire: {\r\n\t\tinherit: true,\r\n\t\tonTryHit(target, source, move) {\r\n\t\t\tif (target !== source && move.type === 'Fire') {\r\n\t\t\t\tif (move.id === 'willowisp' && (target.hasType('Fire') || target.status || target.volatiles['substitute'])) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (target.status === 'frz') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (!target.addVolatile('flashfire')) {\r\n\t\t\t\t\tthis.add('-immune', target, '[from] ability: Flash Fire');\r\n\t\t\t\t}\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tintimidate: {\r\n\t\tinherit: true,\r\n\t\tonStart(pokemon) {\r\n\t\t\tlet activated = false;\r\n\t\t\tfor (const target of pokemon.adjacentFoes()) {\r\n\t\t\t\tif (!target.volatiles['substitute']) {\r\n\t\t\t\t\tactivated = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!activated) {\r\n\t\t\t\tthis.hint(\"In Gen 3, Intimidate does not activate if every target has a Substitute.\", false, pokemon.side);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-ability', pokemon, 'Intimidate', 'boost');\r\n\r\n\t\t\tfor (const target of pokemon.adjacentFoes()) {\r\n\t\t\t\tif (target.volatiles['substitute']) {\r\n\t\t\t\t\tthis.add('-immune', target);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.boost({atk: -1}, target, pokemon, null, true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tlightningrod: {\r\n\t\tonFoeRedirectTarget(target, source, source2, move) {\r\n\t\t\tif (move.type !== 'Electric') return;\r\n\t\t\tif (this.validTarget(this.effectState.target, source, move.target)) {\r\n\t\t\t\treturn this.effectState.target;\r\n\t\t\t}\r\n\t\t},\r\n\t\tisBreakable: true,\r\n\t\tname: \"Lightning Rod\",\r\n\t\trating: 0,\r\n\t\tnum: 32,\r\n\t},\r\n\tminus: {\r\n\t\tinherit: true,\r\n\t\tonModifySpA(spa, pokemon) {\r\n\t\t\tfor (const active of this.getAllActive()) {\r\n\t\t\t\tif (!active.fainted && active.hasAbility('plus')) {\r\n\t\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tplus: {\r\n\t\tinherit: true,\r\n\t\tonModifySpA(spa, pokemon) {\r\n\t\t\tfor (const active of this.getAllActive()) {\r\n\t\t\t\tif (!active.fainted && active.hasAbility('minus')) {\r\n\t\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tpoisonpoint: {\r\n\t\tinherit: true,\r\n\t\tonDamagingHit(damage, target, source, move) {\r\n\t\t\tif (damage && move.flags['contact']) {\r\n\t\t\t\tif (this.randomChance(1, 3)) {\r\n\t\t\t\t\tsource.trySetStatus('psn', target);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tpressure: {\r\n\t\tinherit: true,\r\n\t\tonStart(pokemon) {\r\n\t\t\tthis.addSplit(pokemon.side.id, ['-ability', pokemon, 'Pressure', '[silent]']);\r\n\t\t},\r\n\t},\r\n\traindish: {\r\n\t\tinherit: true,\r\n\t\tonWeather() {},\r\n\t\tonResidualOrder: 10,\r\n\t\tonResidualSubOrder: 3,\r\n\t\tonResidual(pokemon) {\r\n\t\t\tif (['raindance', 'primordialsea'].includes(pokemon.effectiveWeather())) {\r\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 16);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\troughskin: {\r\n\t\tinherit: true,\r\n\t\tonDamagingHit(damage, target, source, move) {\r\n\t\t\tif (damage && move.flags['contact']) {\r\n\t\t\t\tthis.damage(source.baseMaxhp / 16, source, target);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tshadowtag: {\r\n\t\tinherit: true,\r\n\t\tonFoeTrapPokemon(pokemon) {\r\n\t\t\tpokemon.trapped = true;\r\n\t\t},\r\n\t},\r\n\tstatic: {\r\n\t\tinherit: true,\r\n\t\tonDamagingHit(damage, target, source, move) {\r\n\t\t\tif (damage && move.flags['contact']) {\r\n\t\t\t\tif (this.randomChance(1, 3)) {\r\n\t\t\t\t\tsource.trySetStatus('par', target);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\ttrace: {\r\n\t\tinherit: true,\r\n\t\tonUpdate(pokemon) {\r\n\t\t\tif (!pokemon.isStarted) return;\r\n\t\t\tconst target = pokemon.side.randomFoe();\r\n\t\t\tif (!target || target.fainted) return;\r\n\t\t\tconst ability = target.getAbility();\r\n\t\t\tconst bannedAbilities = ['forecast', 'multitype', 'trace'];\r\n\t\t\tif (bannedAbilities.includes(target.ability)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (pokemon.setAbility(ability)) {\r\n\t\t\t\tthis.add('-ability', pokemon, ability, '[from] ability: Trace', '[of] ' + target);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\ttruant: {\r\n\t\tinherit: true,\r\n\t\tonStart() {},\r\n\t\tonSwitchIn(pokemon) {\r\n\t\t\tpokemon.truantTurn = this.turn !== 0;\r\n\t\t},\r\n\t\tonBeforeMove(pokemon) {\r\n\t\t\tif (pokemon.truantTurn) {\r\n\t\t\t\tthis.add('cant', pokemon, 'ability: Truant');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonResidualOrder: 27,\r\n\t\tonResidual(pokemon) {\r\n\t\t\tpokemon.truantTurn = !pokemon.truantTurn;\r\n\t\t},\r\n\t},\r\n\tvoltabsorb: {\r\n\t\tinherit: true,\r\n\t\tonTryHit(target, source, move) {\r\n\t\t\tif (target !== source && move.type === 'Electric' && move.id !== 'thunderwave') {\r\n\t\t\t\tif (!this.heal(target.baseMaxhp / 4)) {\r\n\t\t\t\t\tthis.add('-immune', target, '[from] ability: Volt Absorb');\r\n\t\t\t\t}\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n};\r\n"], "mappings": "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", "names": [] }