Pokemon_server / dist /data /mods /gen2 /conditions.js.map
Jofthomas's picture
Jofthomas HF staff
Upload 4781 files
5c2ed06 verified
{
"version": 3,
"sources": ["../../../../data/mods/gen2/conditions.ts"],
"sourcesContent": ["export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = {\n\tbrn: {\n\t\tname: 'brn',\n\t\teffectType: 'Status',\n\t\tonStart(target) {\n\t\t\tthis.add('-status', target, 'brn');\n\t\t},\n\t\tonAfterMoveSelfPriority: 3,\n\t\tonAfterMoveSelf(pokemon) {\n\t\t\tresidualdmg(this, pokemon);\n\t\t},\n\t\tonAfterSwitchInSelf(pokemon) {\n\t\t\tresidualdmg(this, pokemon);\n\t\t},\n\t},\n\tpar: {\n\t\tname: 'par',\n\t\tinherit: true,\n\t\tonBeforeMovePriority: 2,\n\t\tonBeforeMove(pokemon) {\n\t\t\tif (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-6 turns\n\t\t\tthis.effectState.time = this.random(2, 8);\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\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\tfrz: {\n\t\tname: 'frz',\n\t\tinherit: true,\n\t\tonBeforeMove(pokemon, target, move) {\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\tonModifyMove() {},\n\t\tonDamagingHit() {},\n\t\tonAfterMoveSecondary(target, source, move) {\n\t\t\tif ((move.secondary && move.secondary.status === 'brn') || move.statusRoll === 'brn') {\n\t\t\t\ttarget.cureStatus();\n\t\t\t}\n\t\t},\n\t\tonAfterMoveSecondarySelf(pokemon, target, move) {\n\t\t\tif (move.flags['defrost']) pokemon.cureStatus();\n\t\t},\n\t\tonResidualOrder: 7,\n\t\tonResidual(pokemon) {\n\t\t\tif (this.randomChance(25, 256)) pokemon.cureStatus();\n\t\t},\n\t},\n\tpsn: {\n\t\tname: 'psn',\n\t\teffectType: 'Status',\n\t\tonStart(target) {\n\t\t\tthis.add('-status', target, 'psn');\n\t\t},\n\t\tonAfterMoveSelfPriority: 3,\n\t\tonAfterMoveSelf(pokemon) {\n\t\t\tresidualdmg(this, pokemon);\n\t\t},\n\t\tonAfterSwitchInSelf(pokemon) {\n\t\t\tresidualdmg(this, pokemon);\n\t\t},\n\t},\n\ttox: {\n\t\tname: 'tox',\n\t\teffectType: 'Status',\n\t\tonStart(target) {\n\t\t\tthis.add('-status', target, 'tox');\n\t\t\tif (!target.volatiles['residualdmg']) target.addVolatile('residualdmg');\n\t\t\ttarget.volatiles['residualdmg'].counter = 0;\n\t\t},\n\t\tonAfterMoveSelfPriority: 3,\n\t\tonAfterMoveSelf(pokemon) {\n\t\t\tconst damage = this.clampIntRange(Math.floor(pokemon.maxhp / 16), 1) * pokemon.volatiles['residualdmg'].counter;\n\t\t\tthis.damage(damage, pokemon, pokemon);\n\t\t},\n\t\tonSwitchIn(pokemon) {\n\t\t\t// Regular poison status and damage after a switchout -> switchin.\n\t\t\tpokemon.status = 'psn' as ID;\n\t\t\tthis.add('-status', pokemon, 'psn', '[silent]');\n\t\t},\n\t\tonAfterSwitchInSelf(pokemon) {\n\t\t\tthis.damage(this.clampIntRange(Math.floor(pokemon.maxhp / 16), 1));\n\t\t},\n\t},\n\tconfusion: {\n\t\tinherit: true,\n\t\tonStart(target, source, sourceEffect) {\n\t\t\tif (sourceEffect && sourceEffect.id === 'lockedmove') {\n\t\t\t\tthis.add('-start', target, 'confusion', '[silent]');\n\t\t\t} else {\n\t\t\t\tthis.add('-start', target, 'confusion');\n\t\t\t}\n\t\t\tif (sourceEffect && sourceEffect.id === 'berserkgene') {\n\t\t\t\tthis.effectState.time = 256;\n\t\t\t} else {\n\t\t\t\tthis.effectState.time = this.random(2, 6);\n\t\t\t}\n\t\t},\n\t\tonBeforeMove(pokemon, target, move) {\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\tmove = {\n\t\t\t\tbasePower: 40,\n\t\t\t\ttype: '???',\n\t\t\t\tbaseMoveType: move.type,\n\t\t\t\tcategory: 'Physical',\n\t\t\t\twillCrit: false,\n\t\t\t\tisConfusionSelfHit: true,\n\t\t\t\tnoDamageVariance: true,\n\t\t\t\tflags: {},\n\t\t\t\tselfdestruct: move.selfdestruct,\n\t\t\t} as unknown as ActiveMove;\n\t\t\tconst damage = this.actions.getDamage(pokemon, pokemon, move);\n\t\t\tif (typeof damage !== 'number') throw new Error(\"Confusion damage not dealt\");\n\t\t\tthis.directDamage(damage);\n\t\t\treturn false;\n\t\t},\n\t},\n\tpartiallytrapped: {\n\t\tinherit: true,\n\t\tdurationCallback(target, source) {\n\t\t\treturn this.random(3, 6);\n\t\t},\n\t\tonResidualOrder: 3,\n\t\tonResidualSubOrder: 1,\n\t},\n\tlockedmove: {\n\t\tname: 'lockedmove',\n\t\t// Outrage, Thrash, Petal Dance...\n\t\tdurationCallback() {\n\t\t\treturn this.random(2, 4);\n\t\t},\n\t\tonResidual(target) {\n\t\t\tif ((target.lastMove && target.lastMove.id === 'struggle') || target.status === 'slp') {\n\t\t\t\t// don't lock, and bypass confusion for calming\n\t\t\t\tdelete target.volatiles['lockedmove'];\n\t\t\t}\n\t\t},\n\t\tonStart(target, source, effect) {\n\t\t\tthis.effectState.move = effect.id;\n\t\t},\n\t\tonEnd(target) {\n\t\t\t// Confusion begins even if already confused\n\t\t\tdelete target.volatiles['confusion'];\n\t\t\tif (!target.side.getSideCondition('safeguard')) target.addVolatile('confusion');\n\t\t},\n\t\tonLockMove(pokemon) {\n\t\t\treturn this.effectState.move;\n\t\t},\n\t\tonMoveAborted(pokemon) {\n\t\t\tdelete pokemon.volatiles['lockedmove'];\n\t\t},\n\t\tonBeforeTurn(pokemon) {\n\t\t\tconst move = this.dex.moves.get(this.effectState.move);\n\t\t\tif (move.id) {\n\t\t\t\tthis.debug('Forcing into ' + move.id);\n\t\t\t\tthis.queue.changeAction(pokemon, { choice: 'move', moveid: move.id });\n\t\t\t}\n\t\t},\n\t},\n\tfuturemove: {\n\t\tinherit: true,\n\t\tonResidualOrder: 1,\n\t},\n\traindance: {\n\t\tinherit: true,\n\t\tonFieldResidualOrder: 2,\n\t},\n\tsunnyday: {\n\t\tinherit: true,\n\t\tonFieldResidualOrder: 2,\n\t},\n\tsandstorm: {\n\t\tinherit: true,\n\t\tonFieldResidualOrder: 2,\n\t\tonWeather(target) {\n\t\t\tthis.damage(target.baseMaxhp / 8);\n\t\t},\n\t},\n\tstall: {\n\t\tname: 'stall',\n\t\tduration: 2,\n\t\tonStart() {\n\t\t\tthis.effectState.counter = 127;\n\t\t},\n\t\tonStallMove() {\n\t\t\tconst counter = Math.floor(this.effectState.counter) || 127;\n\t\t\tthis.debug(`Success chance: ${Math.round(counter * 1000 / 255) / 10}% (${counter}/255)`);\n\t\t\treturn this.randomChance(counter, 255);\n\t\t},\n\t\tonRestart() {\n\t\t\tthis.effectState.counter /= 2;\n\t\t\tthis.effectState.duration = 2;\n\t\t},\n\t},\n\tresidualdmg: {\n\t\tname: 'residualdmg',\n\t\tonStart(target) {\n\t\t\ttarget.volatiles['residualdmg'].counter = 0;\n\t\t},\n\t\tonAfterMoveSelfPriority: 100,\n\t\tonAfterMoveSelf(pokemon) {\n\t\t\tif (['brn', 'psn', 'tox'].includes(pokemon.status)) pokemon.volatiles['residualdmg'].counter++;\n\t\t},\n\t\tonAfterSwitchInSelf(pokemon) {\n\t\t\tif (['brn', 'psn', 'tox'].includes(pokemon.status)) pokemon.volatiles['residualdmg'].counter++;\n\t\t},\n\t},\n};\n\nfunction residualdmg(battle: Battle, pokemon: Pokemon) {\n\tif (pokemon.volatiles['residualdmg']) {\n\t\tconst residualDmg = battle.clampIntRange(\n\t\t\tMath.floor(pokemon.maxhp / 16) * pokemon.volatiles['residualdmg'].counter, 1\n\t\t);\n\t\tbattle.damage(residualDmg, pokemon);\n\t\tbattle.hint(\"In Gen 2, Toxic's counter is retained through Baton Pass/Heal Bell and applies to PSN/BRN.\", true);\n\t} else {\n\t\tbattle.damage(battle.clampIntRange(Math.floor(pokemon.maxhp / 8), 1), pokemon);\n\t}\n}\n"],
"mappings": "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",
"names": []
}