{ "version": 3, "sources": ["../../../../data/mods/gen4/conditions.ts"], "sourcesContent": ["export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = {\n\tbrn: {\n\t\tinherit: true,\n\t\tonResidualOrder: 10,\n\t\tonResidualSubOrder: 6,\n\t},\n\tpar: {\n\t\tinherit: true,\n\t\tonModifySpe(spe, pokemon) {\n\t\t\tif (!pokemon.hasAbility('quickfeet')) {\n\t\t\t\treturn this.chainModify(0.25);\n\t\t\t}\n\t\t\treturn spe;\n\t\t},\n\t\tonBeforeMove(pokemon) {\n\t\t\tif (!pokemon.hasAbility('magicguard') && this.randomChance(1, 4)) {\n\t\t\t\tthis.add('cant', pokemon, 'par');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t},\n\tslp: {\n\t\tname: 'slp',\n\t\teffectType: 'Status',\n\t\tonStart(target, source, sourceEffect) {\n\t\t\tif (sourceEffect && sourceEffect.effectType === 'Move') {\n\t\t\t\tthis.add('-status', target, 'slp', `[from] move: ${sourceEffect.name}`);\n\t\t\t} else {\n\t\t\t\tthis.add('-status', target, 'slp');\n\t\t\t}\n\t\t\t// 1-4 turns\n\t\t\tthis.effectState.time = this.random(2, 6);\n\n\t\t\tif (target.removeVolatile('nightmare')) {\n\t\t\t\tthis.add('-end', target, 'Nightmare', '[silent]');\n\t\t\t}\n\t\t},\n\t\tonBeforeMovePriority: 10,\n\t\tonBeforeMove(pokemon, target, move) {\n\t\t\tif (pokemon.hasAbility('earlybird')) {\n\t\t\t\tpokemon.statusState.time--;\n\t\t\t}\n\t\t\tpokemon.statusState.time--;\n\t\t\tif (pokemon.statusState.time <= 0) {\n\t\t\t\tpokemon.cureStatus();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('cant', pokemon, 'slp');\n\t\t\tif (move.sleepUsable) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t},\n\tpsn: {\n\t\tinherit: true,\n\t\tonResidualOrder: 10,\n\t\tonResidualSubOrder: 6,\n\t},\n\ttox: {\n\t\tinherit: true,\n\t\tonResidualOrder: 10,\n\t\tonResidualSubOrder: 6,\n\t},\n\tconfusion: {\n\t\tinherit: true,\n\t\tonBeforeMove(pokemon) {\n\t\t\tpokemon.volatiles['confusion'].time--;\n\t\t\tif (!pokemon.volatiles['confusion'].time) {\n\t\t\t\tpokemon.removeVolatile('confusion');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.add('-activate', pokemon, 'confusion');\n\t\t\tif (this.randomChance(1, 2)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst damage = this.actions.getDamage(pokemon, pokemon, 40);\n\t\t\tif (typeof damage !== 'number') throw new Error(\"Confusion damage not dealt\");\n\t\t\tthis.damage(damage, pokemon, pokemon, {\n\t\t\t\tid: 'confused',\n\t\t\t\teffectType: 'Move',\n\t\t\t\ttype: '???',\n\t\t\t} as ActiveMove);\n\t\t\treturn false;\n\t\t},\n\t},\n\tfrz: {\n\t\tinherit: true,\n\t\tonBeforeMove(pokemon, target, move) {\n\t\t\tif (this.randomChance(1, 5)) {\n\t\t\t\tpokemon.cureStatus();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (move.flags['defrost']) return;\n\t\t\tthis.add('cant', pokemon, 'frz');\n\t\t\treturn false;\n\t\t},\n\t},\n\tsubstitutebroken: {\n\t\tnoCopy: true,\n\t},\n\ttrapped: {\n\t\tinherit: true,\n\t\tnoCopy: false,\n\t},\n\ttrapper: {\n\t\tinherit: true,\n\t\tnoCopy: false,\n\t},\n\tpartiallytrapped: {\n\t\tinherit: true,\n\t\tdurationCallback(target, source) {\n\t\t\tif (source.hasItem('gripclaw')) return 6;\n\t\t\treturn this.random(3, 7);\n\t\t},\n\t\tonResidualOrder: 10,\n\t\tonResidualSubOrder: 9,\n\t},\n\tchoicelock: {\n\t\tinherit: true,\n\t\tonStart(pokemon) {\n\t\t\tif (!pokemon.lastMove) return false;\n\t\t\tthis.effectState.move = pokemon.lastMove.id;\n\t\t},\n\t},\n\tfuturemove: {\n\t\tinherit: true,\n\t\tonResidualOrder: 11,\n\t},\n\tstall: {\n\t\t// In gen 3-4, the chance of protect succeeding does not fall below 1/8.\n\t\t// See http://upokecenter.dreamhosters.com/dex/?lang=en&move=182\n\t\tinherit: true,\n\t\tcounterMax: 8,\n\t},\n\traindance: {\n\t\tinherit: true,\n\t\tonFieldResidualOrder: 8,\n\t},\n\tsunnyday: {\n\t\tinherit: true,\n\t\tonFieldResidualOrder: 8,\n\t},\n\tsandstorm: {\n\t\tinherit: true,\n\t\tonFieldResidualOrder: 8,\n\t},\n\thail: {\n\t\tinherit: true,\n\t\tonFieldResidualOrder: 8,\n\t},\n\t// Arceus's true typing for all its formes is Normal, and it's only Multitype\n\t// that changes its type, but its formes are specified to be their corresponding\n\t// type in the Pokedex, so that needs to be overridden. Without Multitype it\n\t// starts as Normal type, but its type can be changed by other effects.\n\t// This is mainly relevant for Hackmons Cup and Balanced Hackmons.\n\tarceus: {\n\t\tname: 'Arceus',\n\t\tonBeforeSwitchIn(pokemon) {\n\t\t\tpokemon.setType('Normal'); // Multitype will prevent this\n\t\t},\n\t\tonSwitchIn(pokemon) {\n\t\t\tif (pokemon.ability === 'multitype') {\n\t\t\t\tconst item = pokemon.getItem();\n\t\t\t\tconst targetForme = (item?.onPlate ? 'Arceus-' + item.onPlate : 'Arceus');\n\t\t\t\tif (pokemon.species.name !== targetForme) {\n\t\t\t\t\tpokemon.formeChange(targetForme);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n};\n"], "mappings": "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", "names": [] }