{ "version": 3, "sources": ["../../../data/conditions.ts"], "sourcesContent": ["export const Conditions: {[k: string]: ConditionData} = {\r\n\tbrn: {\r\n\t\tname: 'brn',\r\n\t\teffectType: 'Status',\r\n\t\tonStart(target, source, sourceEffect) {\r\n\t\t\tif (sourceEffect && sourceEffect.id === 'flameorb') {\r\n\t\t\t\tthis.add('-status', target, 'brn', '[from] item: Flame Orb');\r\n\t\t\t} else if (sourceEffect && sourceEffect.effectType === 'Ability') {\r\n\t\t\t\tthis.add('-status', target, 'brn', '[from] ability: ' + sourceEffect.name, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-status', target, 'brn');\r\n\t\t\t}\r\n\t\t},\r\n\t\t// Damage reduction is handled directly in the sim/battle.js damage function\r\n\t\tonResidualOrder: 10,\r\n\t\tonResidual(pokemon) {\r\n\t\t\tthis.damage(pokemon.baseMaxhp / 16);\r\n\t\t},\r\n\t},\r\n\tpar: {\r\n\t\tname: 'par',\r\n\t\teffectType: 'Status',\r\n\t\tonStart(target, source, sourceEffect) {\r\n\t\t\tif (sourceEffect && sourceEffect.effectType === 'Ability') {\r\n\t\t\t\tthis.add('-status', target, 'par', '[from] ability: ' + sourceEffect.name, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-status', target, 'par');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifySpe(spe, pokemon) {\r\n\t\t\t// Paralysis occurs after all other Speed modifiers, so evaluate all modifiers up to this point first\r\n\t\t\tspe = this.finalModify(spe);\r\n\t\t\tif (!pokemon.hasAbility('quickfeet')) {\r\n\t\t\t\tspe = Math.floor(spe * 50 / 100);\r\n\t\t\t}\r\n\t\t\treturn spe;\r\n\t\t},\r\n\t\tonBeforeMovePriority: 1,\r\n\t\tonBeforeMove(pokemon) {\r\n\t\t\tif (this.randomChance(1, 4)) {\r\n\t\t\t\tthis.add('cant', pokemon, 'par');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tslp: {\r\n\t\tname: 'slp',\r\n\t\teffectType: 'Status',\r\n\t\tonStart(target, source, sourceEffect) {\r\n\t\t\tif (sourceEffect && sourceEffect.effectType === 'Ability') {\r\n\t\t\t\tthis.add('-status', target, 'slp', '[from] ability: ' + sourceEffect.name, '[of] ' + source);\r\n\t\t\t} else if (sourceEffect && sourceEffect.effectType === 'Move') {\r\n\t\t\t\tthis.add('-status', target, 'slp', '[from] move: ' + sourceEffect.name);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-status', target, 'slp');\r\n\t\t\t}\r\n\t\t\t// 1-3 turns\r\n\t\t\tthis.effectState.startTime = this.random(2, 5);\r\n\t\t\tthis.effectState.time = this.effectState.startTime;\r\n\r\n\t\t\tif (target.removeVolatile('nightmare')) {\r\n\t\t\t\tthis.add('-end', target, 'Nightmare', '[silent]');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonBeforeMovePriority: 10,\r\n\t\tonBeforeMove(pokemon, target, move) {\r\n\t\t\tif (pokemon.hasAbility('earlybird')) {\r\n\t\t\t\tpokemon.statusState.time--;\r\n\t\t\t}\r\n\t\t\tpokemon.statusState.time--;\r\n\t\t\tif (pokemon.statusState.time <= 0) {\r\n\t\t\t\tpokemon.cureStatus();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('cant', pokemon, 'slp');\r\n\t\t\tif (move.sleepUsable) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t},\r\n\t},\r\n\tfrz: {\r\n\t\tname: 'frz',\r\n\t\teffectType: 'Status',\r\n\t\tonStart(target, source, sourceEffect) {\r\n\t\t\tif (sourceEffect && sourceEffect.effectType === 'Ability') {\r\n\t\t\t\tthis.add('-status', target, 'frz', '[from] ability: ' + sourceEffect.name, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-status', target, 'frz');\r\n\t\t\t}\r\n\t\t\tif (target.species.name === 'Shaymin-Sky' && target.baseSpecies.baseSpecies === 'Shaymin') {\r\n\t\t\t\ttarget.formeChange('Shaymin', this.effect, true);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonBeforeMovePriority: 10,\r\n\t\tonBeforeMove(pokemon, target, move) {\r\n\t\t\tif (move.flags['defrost']) return;\r\n\t\t\tif (this.randomChance(1, 5)) {\r\n\t\t\t\tpokemon.cureStatus();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('cant', pokemon, 'frz');\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\tonModifyMove(move, pokemon) {\r\n\t\t\tif (move.flags['defrost']) {\r\n\t\t\t\tthis.add('-curestatus', pokemon, 'frz', '[from] move: ' + move);\r\n\t\t\t\tpokemon.clearStatus();\r\n\t\t\t}\r\n\t\t},\r\n\t\tonAfterMoveSecondary(target, source, move) {\r\n\t\t\tif (move.thawsTarget) {\r\n\t\t\t\ttarget.cureStatus();\r\n\t\t\t}\r\n\t\t},\r\n\t\tonDamagingHit(damage, target, source, move) {\r\n\t\t\tif (move.type === 'Fire' && move.category !== 'Status') {\r\n\t\t\t\ttarget.cureStatus();\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tpsn: {\r\n\t\tname: 'psn',\r\n\t\teffectType: 'Status',\r\n\t\tonStart(target, source, sourceEffect) {\r\n\t\t\tif (sourceEffect && sourceEffect.effectType === 'Ability') {\r\n\t\t\t\tthis.add('-status', target, 'psn', '[from] ability: ' + sourceEffect.name, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-status', target, 'psn');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonResidualOrder: 9,\r\n\t\tonResidual(pokemon) {\r\n\t\t\tthis.damage(pokemon.baseMaxhp / 8);\r\n\t\t},\r\n\t},\r\n\ttox: {\r\n\t\tname: 'tox',\r\n\t\teffectType: 'Status',\r\n\t\tonStart(target, source, sourceEffect) {\r\n\t\t\tthis.effectState.stage = 0;\r\n\t\t\tif (sourceEffect && sourceEffect.id === 'toxicorb') {\r\n\t\t\t\tthis.add('-status', target, 'tox', '[from] item: Toxic Orb');\r\n\t\t\t} else if (sourceEffect && sourceEffect.effectType === 'Ability') {\r\n\t\t\t\tthis.add('-status', target, 'tox', '[from] ability: ' + sourceEffect.name, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-status', target, 'tox');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonSwitchIn() {\r\n\t\t\tthis.effectState.stage = 0;\r\n\t\t},\r\n\t\tonResidualOrder: 9,\r\n\t\tonResidual(pokemon) {\r\n\t\t\tif (this.effectState.stage < 15) {\r\n\t\t\t\tthis.effectState.stage++;\r\n\t\t\t}\r\n\t\t\tthis.damage(this.clampIntRange(pokemon.baseMaxhp / 16, 1) * this.effectState.stage);\r\n\t\t},\r\n\t},\r\n\tconfusion: {\r\n\t\tname: 'confusion',\r\n\t\t// this is a volatile status\r\n\t\tonStart(target, source, sourceEffect) {\r\n\t\t\tif (sourceEffect?.id === 'lockedmove') {\r\n\t\t\t\tthis.add('-start', target, 'confusion', '[fatigue]');\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-start', target, 'confusion');\r\n\t\t\t}\r\n\t\t\tconst min = sourceEffect?.id === 'axekick' ? 3 : 2;\r\n\t\t\tthis.effectState.time = this.random(min, 6);\r\n\t\t},\r\n\t\tonEnd(target) {\r\n\t\t\tthis.add('-end', target, 'confusion');\r\n\t\t},\r\n\t\tonBeforeMovePriority: 3,\r\n\t\tonBeforeMove(pokemon) {\r\n\t\t\tpokemon.volatiles['confusion'].time--;\r\n\t\t\tif (!pokemon.volatiles['confusion'].time) {\r\n\t\t\t\tpokemon.removeVolatile('confusion');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add('-activate', pokemon, 'confusion');\r\n\t\t\tif (!this.randomChance(33, 100)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.activeTarget = pokemon;\r\n\t\t\tconst damage = this.actions.getConfusionDamage(pokemon, 40);\r\n\t\t\tif (typeof damage !== 'number') throw new Error(\"Confusion damage not dealt\");\r\n\t\t\tconst activeMove = {id: this.toID('confused'), effectType: 'Move', type: '???'};\r\n\t\t\tthis.damage(damage, pokemon, pokemon, activeMove as ActiveMove);\r\n\t\t\treturn false;\r\n\t\t},\r\n\t},\r\n\tflinch: {\r\n\t\tname: 'flinch',\r\n\t\tduration: 1,\r\n\t\tonBeforeMovePriority: 8,\r\n\t\tonBeforeMove(pokemon) {\r\n\t\t\tthis.add('cant', pokemon, 'flinch');\r\n\t\t\tthis.runEvent('Flinch', pokemon);\r\n\t\t\treturn false;\r\n\t\t},\r\n\t},\r\n\ttrapped: {\r\n\t\tname: 'trapped',\r\n\t\tnoCopy: true,\r\n\t\tonTrapPokemon(pokemon) {\r\n\t\t\tpokemon.tryTrap();\r\n\t\t},\r\n\t\tonStart(target) {\r\n\t\t\tthis.add('-activate', target, 'trapped');\r\n\t\t},\r\n\t},\r\n\ttrapper: {\r\n\t\tname: 'trapper',\r\n\t\tnoCopy: true,\r\n\t},\r\n\tpartiallytrapped: {\r\n\t\tname: 'partiallytrapped',\r\n\t\tduration: 5,\r\n\t\tdurationCallback(target, source) {\r\n\t\t\tif (source?.hasItem('gripclaw')) return 8;\r\n\t\t\treturn this.random(5, 7);\r\n\t\t},\r\n\t\tonStart(pokemon, source) {\r\n\t\t\tthis.add('-activate', pokemon, 'move: ' + this.effectState.sourceEffect, '[of] ' + source);\r\n\t\t\tthis.effectState.boundDivisor = source.hasItem('bindingband') ? 6 : 8;\r\n\t\t},\r\n\t\tonResidualOrder: 13,\r\n\t\tonResidual(pokemon) {\r\n\t\t\tconst source = this.effectState.source;\r\n\t\t\t// G-Max Centiferno and G-Max Sandblast continue even after the user leaves the field\r\n\t\t\tconst gmaxEffect = ['gmaxcentiferno', 'gmaxsandblast'].includes(this.effectState.sourceEffect.id);\r\n\t\t\tif (source && (!source.isActive || source.hp <= 0 || !source.activeTurns) && !gmaxEffect) {\r\n\t\t\t\tdelete pokemon.volatiles['partiallytrapped'];\r\n\t\t\t\tthis.add('-end', pokemon, this.effectState.sourceEffect, '[partiallytrapped]', '[silent]');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.damage(pokemon.baseMaxhp / this.effectState.boundDivisor);\r\n\t\t},\r\n\t\tonEnd(pokemon) {\r\n\t\t\tthis.add('-end', pokemon, this.effectState.sourceEffect, '[partiallytrapped]');\r\n\t\t},\r\n\t\tonTrapPokemon(pokemon) {\r\n\t\t\tconst gmaxEffect = ['gmaxcentiferno', 'gmaxsandblast'].includes(this.effectState.sourceEffect.id);\r\n\t\t\tif (this.effectState.source?.isActive || gmaxEffect) pokemon.tryTrap();\r\n\t\t},\r\n\t},\r\n\tlockedmove: {\r\n\t\t// Outrage, Thrash, Petal Dance...\r\n\t\tname: 'lockedmove',\r\n\t\tduration: 2,\r\n\t\tonResidual(target) {\r\n\t\t\tif (target.status === 'slp') {\r\n\t\t\t\t// don't lock, and bypass confusion for calming\r\n\t\t\t\tdelete target.volatiles['lockedmove'];\r\n\t\t\t}\r\n\t\t\tthis.effectState.trueDuration--;\r\n\t\t},\r\n\t\tonStart(target, source, effect) {\r\n\t\t\tthis.effectState.trueDuration = this.random(2, 4);\r\n\t\t\tthis.effectState.move = effect.id;\r\n\t\t},\r\n\t\tonRestart() {\r\n\t\t\tif (this.effectState.trueDuration >= 2) {\r\n\t\t\t\tthis.effectState.duration = 2;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonEnd(target) {\r\n\t\t\tif (this.effectState.trueDuration > 1) return;\r\n\t\t\ttarget.addVolatile('confusion');\r\n\t\t},\r\n\t\tonLockMove(pokemon) {\r\n\t\t\tif (pokemon.volatiles['dynamax']) return;\r\n\t\t\treturn this.effectState.move;\r\n\t\t},\r\n\t},\r\n\ttwoturnmove: {\r\n\t\t// Skull Bash, SolarBeam, Sky Drop...\r\n\t\tname: 'twoturnmove',\r\n\t\tduration: 2,\r\n\t\tonStart(attacker, defender, effect) {\r\n\t\t\t// (\"attacker\" is the Pokemon using the two turn move and the Pokemon this condition is being applied to)\r\n\t\t\tthis.effectState.move = effect.id;\r\n\t\t\tattacker.addVolatile(effect.id);\r\n\t\t\t// lastMoveTargetLoc is the location of the originally targeted slot before any redirection\r\n\t\t\t// note that this is not updated for moves called by other moves\r\n\t\t\t// i.e. if Dig is called by Metronome, lastMoveTargetLoc will still be the user's location\r\n\t\t\tlet moveTargetLoc: number = attacker.lastMoveTargetLoc!;\r\n\t\t\tif (effect.sourceEffect && this.dex.moves.get(effect.id).target !== 'self') {\r\n\t\t\t\t// this move was called by another move such as Metronome\r\n\t\t\t\t// and needs a random target to be determined this turn\r\n\t\t\t\t// it will already have one by now if there is any valid target\r\n\t\t\t\t// but if there isn't one we need to choose a random slot now\r\n\t\t\t\tif (defender.fainted) {\r\n\t\t\t\t\tdefender = this.sample(attacker.foes(true));\r\n\t\t\t\t}\r\n\t\t\t\tmoveTargetLoc = attacker.getLocOf(defender);\r\n\t\t\t}\r\n\t\t\tattacker.volatiles[effect.id].targetLoc = moveTargetLoc;\r\n\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t// Run side-effects normally associated with hitting (e.g., Protean, Libero)\r\n\t\t\tthis.runEvent('PrepareHit', attacker, defender, effect);\r\n\t\t},\r\n\t\tonEnd(target) {\r\n\t\t\ttarget.removeVolatile(this.effectState.move);\r\n\t\t},\r\n\t\tonLockMove() {\r\n\t\t\treturn this.effectState.move;\r\n\t\t},\r\n\t\tonMoveAborted(pokemon) {\r\n\t\t\tpokemon.removeVolatile('twoturnmove');\r\n\t\t},\r\n\t},\r\n\tchoicelock: {\r\n\t\tname: 'choicelock',\r\n\t\tnoCopy: true,\r\n\t\tonStart(pokemon) {\r\n\t\t\tif (!this.activeMove) throw new Error(\"Battle.activeMove is null\");\r\n\t\t\tif (!this.activeMove.id || this.activeMove.hasBounced || this.activeMove.sourceEffect === 'snatch') return false;\r\n\t\t\tthis.effectState.move = this.activeMove.id;\r\n\t\t},\r\n\t\tonBeforeMove(pokemon, target, move) {\r\n\t\t\tif (!pokemon.getItem().isChoice) {\r\n\t\t\t\tpokemon.removeVolatile('choicelock');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (\r\n\t\t\t\t!pokemon.ignoringItem() && !pokemon.volatiles['dynamax'] &&\r\n\t\t\t\tmove.id !== this.effectState.move && move.id !== 'struggle'\r\n\t\t\t) {\r\n\t\t\t\t// Fails unless the Choice item is being ignored, and no PP is lost\r\n\t\t\t\tthis.addMove('move', pokemon, move.name);\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\tthis.debug(\"Disabled by Choice item lock\");\r\n\t\t\t\tthis.add('-fail', pokemon);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonDisableMove(pokemon) {\r\n\t\t\tif (!pokemon.getItem().isChoice || !pokemon.hasMove(this.effectState.move)) {\r\n\t\t\t\tpokemon.removeVolatile('choicelock');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (pokemon.ignoringItem() || pokemon.volatiles['dynamax']) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tfor (const moveSlot of pokemon.moveSlots) {\r\n\t\t\t\tif (moveSlot.id !== this.effectState.move) {\r\n\t\t\t\t\tpokemon.disableMove(moveSlot.id, false, this.effectState.sourceEffect);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tmustrecharge: {\r\n\t\tname: 'mustrecharge',\r\n\t\tduration: 2,\r\n\t\tonBeforeMovePriority: 11,\r\n\t\tonBeforeMove(pokemon) {\r\n\t\t\tthis.add('cant', pokemon, 'recharge');\r\n\t\t\tpokemon.removeVolatile('mustrecharge');\r\n\t\t\tpokemon.removeVolatile('truant');\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tonStart(pokemon) {\r\n\t\t\tthis.add('-mustrecharge', pokemon);\r\n\t\t},\r\n\t\tonLockMove: 'recharge',\r\n\t},\r\n\tfuturemove: {\r\n\t\t// this is a slot condition\r\n\t\tname: 'futuremove',\r\n\t\tduration: 3,\r\n\t\tonResidualOrder: 3,\r\n\t\tonEnd(target) {\r\n\t\t\tconst data = this.effectState;\r\n\t\t\t// time's up; time to hit! :D\r\n\t\t\tconst move = this.dex.moves.get(data.move);\r\n\t\t\tif (target.fainted || target === data.source) {\r\n\t\t\t\tthis.hint(`${move.name} did not hit because the target is ${(target.fainted ? 'fainted' : 'the user')}.`);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.add('-end', target, 'move: ' + move.name);\r\n\t\t\ttarget.removeVolatile('Protect');\r\n\t\t\ttarget.removeVolatile('Endure');\r\n\r\n\t\t\tif (data.source.hasAbility('infiltrator') && this.gen >= 6) {\r\n\t\t\t\tdata.moveData.infiltrates = true;\r\n\t\t\t}\r\n\t\t\tif (data.source.hasAbility('normalize') && this.gen >= 6) {\r\n\t\t\t\tdata.moveData.type = 'Normal';\r\n\t\t\t}\r\n\t\t\tif (data.source.hasAbility('adaptability') && this.gen >= 6) {\r\n\t\t\t\tdata.moveData.stab = 2;\r\n\t\t\t}\r\n\t\t\tconst hitMove = new this.dex.Move(data.moveData) as ActiveMove;\r\n\r\n\t\t\tthis.actions.trySpreadMoveHit([target], data.source, hitMove, true);\r\n\t\t\tif (data.source.isActive && data.source.hasItem('lifeorb') && this.gen >= 5) {\r\n\t\t\t\tthis.singleEvent('AfterMoveSecondarySelf', data.source.getItem(), data.source.itemState, data.source, target, data.source.getItem());\r\n\t\t\t}\r\n\t\t\tthis.activeMove = null;\r\n\r\n\t\t\tthis.checkWin();\r\n\t\t},\r\n\t},\r\n\thealreplacement: {\r\n\t\t// this is a slot condition\r\n\t\tname: 'healreplacement',\r\n\t\tonStart(target, source, sourceEffect) {\r\n\t\t\tthis.effectState.sourceEffect = sourceEffect;\r\n\t\t\tthis.add('-activate', source, 'healreplacement');\r\n\t\t},\r\n\t\tonSwitchInPriority: 1,\r\n\t\tonSwitchIn(target) {\r\n\t\t\tif (!target.fainted) {\r\n\t\t\t\ttarget.heal(target.maxhp);\r\n\t\t\t\tthis.add('-heal', target, target.getHealth, '[from] move: ' + this.effectState.sourceEffect, '[zeffect]');\r\n\t\t\t\ttarget.side.removeSlotCondition(target, 'healreplacement');\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tstall: {\r\n\t\t// Protect, Detect, Endure counter\r\n\t\tname: 'stall',\r\n\t\tduration: 2,\r\n\t\tcounterMax: 729,\r\n\t\tonStart() {\r\n\t\t\tthis.effectState.counter = 3;\r\n\t\t},\r\n\t\tonStallMove(pokemon) {\r\n\t\t\t// this.effectState.counter should never be undefined here.\r\n\t\t\t// However, just in case, use 1 if it is undefined.\r\n\t\t\tconst counter = this.effectState.counter || 1;\r\n\t\t\tthis.debug(\"Success chance: \" + Math.round(100 / counter) + \"%\");\r\n\t\t\tconst success = this.randomChance(1, counter);\r\n\t\t\tif (!success) delete pokemon.volatiles['stall'];\r\n\t\t\treturn success;\r\n\t\t},\r\n\t\tonRestart() {\r\n\t\t\tif (this.effectState.counter < (this.effect as Condition).counterMax!) {\r\n\t\t\t\tthis.effectState.counter *= 3;\r\n\t\t\t}\r\n\t\t\tthis.effectState.duration = 2;\r\n\t\t},\r\n\t},\r\n\tgem: {\r\n\t\tname: 'gem',\r\n\t\tduration: 1,\r\n\t\taffectsFainted: true,\r\n\t\tonBasePowerPriority: 14,\r\n\t\tonBasePower(basePower, user, target, move) {\r\n\t\t\tthis.debug('Gem Boost');\r\n\t\t\treturn this.chainModify([5325, 4096]);\r\n\t\t},\r\n\t},\r\n\r\n\t// weather is implemented here since it's so important to the game\r\n\r\n\traindance: {\r\n\t\tname: 'RainDance',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 5,\r\n\t\tdurationCallback(source, effect) {\r\n\t\t\tif (source?.hasItem('damprock')) {\r\n\t\t\t\treturn 8;\r\n\t\t\t}\r\n\t\t\treturn 5;\r\n\t\t},\r\n\t\tonWeatherModifyDamage(damage, attacker, defender, move) {\r\n\t\t\tif (defender.hasItem('utilityumbrella')) return;\r\n\t\t\tif (move.type === 'Water') {\r\n\t\t\t\tthis.debug('rain water boost');\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t\tif (move.type === 'Fire') {\r\n\t\t\t\tthis.debug('rain fire suppress');\r\n\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldStart(field, source, effect) {\r\n\t\t\tif (effect?.effectType === 'Ability') {\r\n\t\t\t\tif (this.gen <= 5) this.effectState.duration = 0;\r\n\t\t\t\tthis.add('-weather', 'RainDance', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-weather', 'RainDance');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'RainDance', '[upkeep]');\r\n\t\t\tthis.eachEvent('Weather');\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\tprimordialsea: {\r\n\t\tname: 'PrimordialSea',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 0,\r\n\t\tonTryMovePriority: 1,\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (move.type === 'Fire' && move.category !== 'Status') {\r\n\t\t\t\tthis.debug('Primordial Sea fire suppress');\r\n\t\t\t\tthis.add('-fail', attacker, move, '[from] Primordial Sea');\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonWeatherModifyDamage(damage, attacker, defender, move) {\r\n\t\t\tif (defender.hasItem('utilityumbrella')) return;\r\n\t\t\tif (move.type === 'Water') {\r\n\t\t\t\tthis.debug('Rain water boost');\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldStart(field, source, effect) {\r\n\t\t\tthis.add('-weather', 'PrimordialSea', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'PrimordialSea', '[upkeep]');\r\n\t\t\tthis.eachEvent('Weather');\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\tsunnyday: {\r\n\t\tname: 'SunnyDay',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 5,\r\n\t\tdurationCallback(source, effect) {\r\n\t\t\tif (source?.hasItem('heatrock')) {\r\n\t\t\t\treturn 8;\r\n\t\t\t}\r\n\t\t\treturn 5;\r\n\t\t},\r\n\t\tonWeatherModifyDamage(damage, attacker, defender, move) {\r\n\t\t\tif (move.id === 'hydrosteam' && !attacker.hasItem('utilityumbrella')) {\r\n\t\t\t\tthis.debug('Sunny Day Hydro Steam boost');\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t\tif (defender.hasItem('utilityumbrella')) return;\r\n\t\t\tif (move.type === 'Fire') {\r\n\t\t\t\tthis.debug('Sunny Day fire boost');\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t\tif (move.type === 'Water') {\r\n\t\t\t\tthis.debug('Sunny Day water suppress');\r\n\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldStart(battle, source, effect) {\r\n\t\t\tif (effect?.effectType === 'Ability') {\r\n\t\t\t\tif (this.gen <= 5) this.effectState.duration = 0;\r\n\t\t\t\tthis.add('-weather', 'SunnyDay', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-weather', 'SunnyDay');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonImmunity(type, pokemon) {\r\n\t\t\tif (pokemon.hasItem('utilityumbrella')) return;\r\n\t\t\tif (type === 'frz') return false;\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'SunnyDay', '[upkeep]');\r\n\t\t\tthis.eachEvent('Weather');\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\tdesolateland: {\r\n\t\tname: 'DesolateLand',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 0,\r\n\t\tonTryMovePriority: 1,\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (move.type === 'Water' && move.category !== 'Status') {\r\n\t\t\t\tthis.debug('Desolate Land water suppress');\r\n\t\t\t\tthis.add('-fail', attacker, move, '[from] Desolate Land');\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonWeatherModifyDamage(damage, attacker, defender, move) {\r\n\t\t\tif (defender.hasItem('utilityumbrella')) return;\r\n\t\t\tif (move.type === 'Fire') {\r\n\t\t\t\tthis.debug('Sunny Day fire boost');\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldStart(field, source, effect) {\r\n\t\t\tthis.add('-weather', 'DesolateLand', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t},\r\n\t\tonImmunity(type, pokemon) {\r\n\t\t\tif (pokemon.hasItem('utilityumbrella')) return;\r\n\t\t\tif (type === 'frz') return false;\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'DesolateLand', '[upkeep]');\r\n\t\t\tthis.eachEvent('Weather');\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\tsandstorm: {\r\n\t\tname: 'Sandstorm',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 5,\r\n\t\tdurationCallback(source, effect) {\r\n\t\t\tif (source?.hasItem('smoothrock')) {\r\n\t\t\t\treturn 8;\r\n\t\t\t}\r\n\t\t\treturn 5;\r\n\t\t},\r\n\t\t// This should be applied directly to the stat before any of the other modifiers are chained\r\n\t\t// So we give it increased priority.\r\n\t\tonModifySpDPriority: 10,\r\n\t\tonModifySpD(spd, pokemon) {\r\n\t\t\tif (pokemon.hasType('Rock') && this.field.isWeather('sandstorm')) {\r\n\t\t\t\treturn this.modify(spd, 1.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldStart(field, source, effect) {\r\n\t\t\tif (effect?.effectType === 'Ability') {\r\n\t\t\t\tif (this.gen <= 5) this.effectState.duration = 0;\r\n\t\t\t\tthis.add('-weather', 'Sandstorm', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-weather', 'Sandstorm');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'Sandstorm', '[upkeep]');\r\n\t\t\tif (this.field.isWeather('sandstorm')) this.eachEvent('Weather');\r\n\t\t},\r\n\t\tonWeather(target) {\r\n\t\t\tthis.damage(target.baseMaxhp / 16);\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\thail: {\r\n\t\tname: 'Hail',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 5,\r\n\t\tdurationCallback(source, effect) {\r\n\t\t\tif (source?.hasItem('icyrock')) {\r\n\t\t\t\treturn 8;\r\n\t\t\t}\r\n\t\t\treturn 5;\r\n\t\t},\r\n\t\tonFieldStart(field, source, effect) {\r\n\t\t\tif (effect?.effectType === 'Ability') {\r\n\t\t\t\tif (this.gen <= 5) this.effectState.duration = 0;\r\n\t\t\t\tthis.add('-weather', 'Hail', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-weather', 'Hail');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'Hail', '[upkeep]');\r\n\t\t\tif (this.field.isWeather('hail')) this.eachEvent('Weather');\r\n\t\t},\r\n\t\tonWeather(target) {\r\n\t\t\tthis.damage(target.baseMaxhp / 16);\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\tsnow: {\r\n\t\tname: 'Snow',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 5,\r\n\t\tdurationCallback(source, effect) {\r\n\t\t\tif (source?.hasItem('icyrock')) {\r\n\t\t\t\treturn 8;\r\n\t\t\t}\r\n\t\t\treturn 5;\r\n\t\t},\r\n\t\tonModifyDefPriority: 10,\r\n\t\tonModifyDef(def, pokemon) {\r\n\t\t\tif (pokemon.hasType('Ice') && this.field.isWeather('snow')) {\r\n\t\t\t\treturn this.modify(def, 1.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldStart(field, source, effect) {\r\n\t\t\tif (effect?.effectType === 'Ability') {\r\n\t\t\t\tif (this.gen <= 5) this.effectState.duration = 0;\r\n\t\t\t\tthis.add('-weather', 'Snow', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-weather', 'Snow');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'Snow', '[upkeep]');\r\n\t\t\tif (this.field.isWeather('snow')) this.eachEvent('Weather');\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\tdeltastream: {\r\n\t\tname: 'DeltaStream',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 0,\r\n\t\tonEffectivenessPriority: -1,\r\n\t\tonEffectiveness(typeMod, target, type, move) {\r\n\t\t\tif (move && move.effectType === 'Move' && move.category !== 'Status' && type === 'Flying' && typeMod > 0) {\r\n\t\t\t\tthis.add('-fieldactivate', 'Delta Stream');\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldStart(field, source, effect) {\r\n\t\t\tthis.add('-weather', 'DeltaStream', '[from] ability: ' + effect.name, '[of] ' + source);\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'DeltaStream', '[upkeep]');\r\n\t\t\tthis.eachEvent('Weather');\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\r\n\tdynamax: {\r\n\t\tname: 'Dynamax',\r\n\t\tnoCopy: true,\r\n\t\tonStart(pokemon) {\r\n\t\t\tthis.effectState.turns = 0;\r\n\t\t\tpokemon.removeVolatile('minimize');\r\n\t\t\tpokemon.removeVolatile('substitute');\r\n\t\t\tif (pokemon.volatiles['torment']) {\r\n\t\t\t\tdelete pokemon.volatiles['torment'];\r\n\t\t\t\tthis.add('-end', pokemon, 'Torment', '[silent]');\r\n\t\t\t}\r\n\t\t\tif (['cramorantgulping', 'cramorantgorging'].includes(pokemon.species.id) && !pokemon.transformed) {\r\n\t\t\t\tpokemon.formeChange('cramorant');\r\n\t\t\t}\r\n\t\t\tthis.add('-start', pokemon, 'Dynamax', pokemon.gigantamax ? 'Gmax' : '');\r\n\t\t\tif (pokemon.baseSpecies.name === 'Shedinja') return;\r\n\r\n\t\t\t// Changes based on dynamax level, 2 is max (at LVL 10)\r\n\t\t\tconst ratio = 1.5 + (pokemon.dynamaxLevel * 0.05);\r\n\r\n\t\t\tpokemon.maxhp = Math.floor(pokemon.maxhp * ratio);\r\n\t\t\tpokemon.hp = Math.floor(pokemon.hp * ratio);\r\n\t\t\tthis.add('-heal', pokemon, pokemon.getHealth, '[silent]');\r\n\t\t},\r\n\t\tonTryAddVolatile(status, pokemon) {\r\n\t\t\tif (status.id === 'flinch') return null;\r\n\t\t},\r\n\t\tonBeforeSwitchOutPriority: -1,\r\n\t\tonBeforeSwitchOut(pokemon) {\r\n\t\t\tpokemon.removeVolatile('dynamax');\r\n\t\t},\r\n\t\tonSourceModifyDamage(damage, source, target, move) {\r\n\t\t\tif (move.id === 'behemothbash' || move.id === 'behemothblade' || move.id === 'dynamaxcannon') {\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonDragOutPriority: 2,\r\n\t\tonDragOut(pokemon) {\r\n\t\t\tthis.add('-block', pokemon, 'Dynamax');\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tonResidualPriority: -100,\r\n\t\tonResidual() {\r\n\t\t\tthis.effectState.turns++;\r\n\t\t},\r\n\t\tonEnd(pokemon) {\r\n\t\t\tthis.add('-end', pokemon, 'Dynamax');\r\n\t\t\tif (pokemon.baseSpecies.name === 'Shedinja') return;\r\n\t\t\tpokemon.hp = pokemon.getUndynamaxedHP();\r\n\t\t\tpokemon.maxhp = pokemon.baseMaxhp;\r\n\t\t\tthis.add('-heal', pokemon, pokemon.getHealth, '[silent]');\r\n\t\t},\r\n\t},\r\n\r\n\t// Commander needs two conditions so they are implemented here\r\n\t// Dondozo\r\n\tcommanded: {\r\n\t\tname: \"Commanded\",\r\n\t\tnoCopy: true,\r\n\t\tonStart(pokemon) {\r\n\t\t\tthis.boost({atk: 2, spa: 2, spe: 2, def: 2, spd: 2}, pokemon);\r\n\t\t},\r\n\t\tonDragOutPriority: 2,\r\n\t\tonDragOut() {\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\t// Prevents Shed Shell allowing a swap\r\n\t\tonTrapPokemonPriority: -11,\r\n\t\tonTrapPokemon(pokemon) {\r\n\t\t\tpokemon.trapped = true;\r\n\t\t},\r\n\t},\r\n\t// Tatsugiri\r\n\tcommanding: {\r\n\t\tname: \"Commanding\",\r\n\t\tnoCopy: true,\r\n\t\tonDragOutPriority: 2,\r\n\t\tonDragOut() {\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\t// Prevents Shed Shell allowing a swap\r\n\t\tonTrapPokemonPriority: -11,\r\n\t\tonTrapPokemon(pokemon) {\r\n\t\t\tpokemon.trapped = true;\r\n\t\t},\r\n\t\t// Override No Guard\r\n\t\tonInvulnerabilityPriority: 2,\r\n\t\tonInvulnerability(target, source, move) {\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\tonBeforeTurn(pokemon) {\r\n\t\t\tthis.queue.cancelAction(pokemon);\r\n\t\t},\r\n\t},\r\n\r\n\t// Arceus and Silvally's actual typing is implemented here.\r\n\t// Their true typing for all their formes is Normal, and it's only\r\n\t// Multitype and RKS System, respectively, that changes their type,\r\n\t// but their formes are specified to be their corresponding type\r\n\t// in the Pokedex, so that needs to be overridden.\r\n\t// This is mainly relevant for Hackmons Cup and Balanced Hackmons.\r\n\tarceus: {\r\n\t\tname: 'Arceus',\r\n\t\tonTypePriority: 1,\r\n\t\tonType(types, pokemon) {\r\n\t\t\tif (pokemon.transformed || pokemon.ability !== 'multitype' && this.gen >= 8) return types;\r\n\t\t\tlet type: string | undefined = 'Normal';\r\n\t\t\tif (pokemon.ability === 'multitype') {\r\n\t\t\t\ttype = pokemon.getItem().onPlate;\r\n\t\t\t\tif (!type) {\r\n\t\t\t\t\ttype = 'Normal';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn [type];\r\n\t\t},\r\n\t},\r\n\tsilvally: {\r\n\t\tname: 'Silvally',\r\n\t\tonTypePriority: 1,\r\n\t\tonType(types, pokemon) {\r\n\t\t\tif (pokemon.transformed || pokemon.ability !== 'rkssystem' && this.gen >= 8) return types;\r\n\t\t\tlet type: string | undefined = 'Normal';\r\n\t\t\tif (pokemon.ability === 'rkssystem') {\r\n\t\t\t\ttype = pokemon.getItem().onMemory;\r\n\t\t\t\tif (!type) {\r\n\t\t\t\t\ttype = 'Normal';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn [type];\r\n\t\t},\r\n\t},\r\n\trolloutstorage: {\r\n\t\tname: 'rolloutstorage',\r\n\t\tduration: 2,\r\n\t\tonBasePower(relayVar, source, target, move) {\r\n\t\t\tlet bp = Math.max(1, move.basePower);\r\n\t\t\tbp *= Math.pow(2, source.volatiles['rolloutstorage'].contactHitCount);\r\n\t\t\tif (source.volatiles['defensecurl']) {\r\n\t\t\t\tbp *= 2;\r\n\t\t\t}\r\n\t\t\tsource.removeVolatile('rolloutstorage');\r\n\t\t\treturn bp;\r\n\t\t},\r\n\t},\r\n};\r\n"], "mappings": "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", "names": [] }