Spaces:
Running
Running
{ | |
"version": 3, | |
"sources": ["../../../../data/mods/gen9ssb/abilities.ts"], | |
"sourcesContent": ["import { ssbSets } from \"./random-teams\";\nimport { changeSet, getName, PSEUDO_WEATHERS } from \"./scripts\";\n\nconst STRONG_WEATHERS = ['desolateland', 'primordialsea', 'deltastream', 'deserteddunes', 'millenniumcastle'];\n\nexport const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = {\n\t/*\n\t// Example\n\tabilityid: {\n\t\tshortDesc: \"\", // short description, shows up in /dt\n\t\tdesc: \"\", // long description\n\t\tname: \"Ability Name\",\n\t\t// The bulk of an ability is not easily shown in an example since it varies\n\t\t// For more examples, see https://github.com/smogon/pokemon-showdown/blob/master/data/abilities.ts\n\t},\n\t*/\n\t// Please keep abilities organized alphabetically based on staff member name!\n\t// Aelita\n\tfortifiedmetal: {\n\t\tshortDesc: \"This Pokemon's weight is doubled and Attack is 1.5x when statused.\",\n\t\tname: \"Fortified Metal\",\n\t\tonModifyWeightPriority: 1,\n\t\tonModifyWeight(weighthg) {\n\t\t\treturn weighthg * 2;\n\t\t},\n\t\tonModifyAtkPriority: 5,\n\t\tonModifyAtk(atk, pokemon) {\n\t\t\tif (pokemon.status) {\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t\tgen: 9,\n\t},\n\n\t// Aethernum\n\ttheeminenceintheshadow: {\n\t\tshortDesc: \"Unaware + Supreme Overlord with half the boost.\",\n\t\tname: \"The Eminence in the Shadow\",\n\t\tonAnyModifyBoost(boosts, pokemon) {\n\t\t\tconst unawareUser = this.effectState.target;\n\t\t\tif (unawareUser === pokemon) return;\n\t\t\tif (unawareUser === this.activePokemon && pokemon === this.activeTarget) {\n\t\t\t\tboosts['def'] = 0;\n\t\t\t\tboosts['spd'] = 0;\n\t\t\t\tboosts['evasion'] = 0;\n\t\t\t}\n\t\t\tif (pokemon === this.activePokemon && unawareUser === this.activeTarget) {\n\t\t\t\tboosts['atk'] = 0;\n\t\t\t\tboosts['def'] = 0;\n\t\t\t\tboosts['spa'] = 0;\n\t\t\t\tboosts['accuracy'] = 0;\n\t\t\t}\n\t\t},\n\t\tonStart(pokemon) {\n\t\t\tif (pokemon.side.totalFainted) {\n\t\t\t\tthis.add('-activate', pokemon, 'ability: The Eminence in the Shadow');\n\t\t\t\tconst fallen = Math.min(pokemon.side.totalFainted, 5);\n\t\t\t\tthis.add('-start', pokemon, `fallen${fallen}`, '[silent]');\n\t\t\t\tthis.effectState.fallen = fallen;\n\t\t\t}\n\t\t},\n\t\tonEnd(pokemon) {\n\t\t\tthis.add('-end', pokemon, `fallen${this.effectState.fallen}`, '[silent]');\n\t\t},\n\t\tonBasePowerPriority: 21,\n\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\tif (this.effectState.fallen) {\n\t\t\t\tconst powMod = [20, 21, 22, 23, 24, 25];\n\t\t\t\tthis.debug(`Supreme Overlord boost: ${powMod[this.effectState.fallen]}/25`);\n\t\t\t\treturn this.chainModify([powMod[this.effectState.fallen], 20]);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Akir\n\ttakeitslow: {\n\t\tshortDesc: \"Regenerator + Psychic Surge.\",\n\t\tname: \"Take it Slow\",\n\t\tonSwitchOut(pokemon) {\n\t\t\tpokemon.heal(pokemon.baseMaxhp / 3);\n\t\t},\n\t\tonStart(source) {\n\t\t\tthis.field.setTerrain('psychicterrain');\n\t\t},\n\t\tflags: {},\n\t\tgen: 9,\n\t},\n\n\t// Alex\n\tpawprints: {\n\t\tshortDesc: \"Oblivious + status moves ignore abilities.\",\n\t\tname: \"Pawprints\",\n\t\tonUpdate(pokemon) {\n\t\t\tif (pokemon.volatiles['attract']) {\n\t\t\t\tthis.add('-activate', pokemon, 'ability: Paw Prints');\n\t\t\t\tpokemon.removeVolatile('attract');\n\t\t\t\tthis.add('-end', pokemon, 'move: Attract', '[from] ability: Paw Prints');\n\t\t\t}\n\t\t\tif (pokemon.volatiles['taunt']) {\n\t\t\t\tthis.add('-activate', pokemon, 'ability: Paw Prints');\n\t\t\t\tpokemon.removeVolatile('taunt');\n\t\t\t\t// Taunt's volatile already sends the -end message when removed\n\t\t\t}\n\t\t},\n\t\tonImmunity(type, pokemon) {\n\t\t\tif (type === 'attract') return false;\n\t\t},\n\t\tonTryHit(pokemon, target, move) {\n\t\t\tif (move.id === 'attract' || move.id === 'captivate' || move.id === 'taunt') {\n\t\t\t\tthis.add('-immune', pokemon, '[from] ability: Paw Prints');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tonTryBoost(boost, target, source, effect) {\n\t\t\tif (effect.name === 'Intimidate' && boost.atk) {\n\t\t\t\tdelete boost.atk;\n\t\t\t\tthis.add('-fail', target, 'unboost', 'Attack', '[from] ability: Paw Prints', `[of] ${target}`);\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move) {\n\t\t\tif (move.category === 'Status') {\n\t\t\t\tmove.ignoreAbility = true;\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Alexander489\n\tconfirmedtown: {\n\t\tshortDesc: \"Technician + Protean.\",\n\t\tname: \"Confirmed Town\",\n\t\tonBasePowerPriority: 30,\n\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\tconst basePowerAfterMultiplier = this.modify(basePower, this.event.modifier);\n\t\t\tthis.debug(`Base Power: ${basePowerAfterMultiplier}`);\n\t\t\tif (basePowerAfterMultiplier <= 60) {\n\t\t\t\tthis.debug('Confirmed Town boost');\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tonPrepareHit(source, target, move) {\n\t\t\tif (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch') return;\n\t\t\tconst type = move.type;\n\t\t\tif (type && type !== '???' && source.getTypes().join() !== type) {\n\t\t\t\tif (!source.setType(type)) return;\n\t\t\t\tthis.add('-start', source, 'typechange', type, '[from] ability: Confirmed Town');\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Apple\n\torchardsgift: {\n\t\tshortDesc: \"Summons Grassy Terrain. 1.5x Sp. Atk and Sp. Def during Grassy Terrain.\",\n\t\tname: \"Orchard's Gift\",\n\t\tonStart(pokemon) {\n\t\t\tif (this.field.setTerrain('grassyterrain')) {\n\t\t\t\tthis.add('-activate', pokemon, 'Orchard\\'s Gift', '[source]');\n\t\t\t} else if (this.field.isTerrain('grassyterrain')) {\n\t\t\t\tthis.add('-activate', pokemon, 'ability: Orchard\\'s Gift');\n\t\t\t}\n\t\t},\n\t\tonModifyAtkPriority: 5,\n\t\tonModifySpA(spa, pokemon) {\n\t\t\tif (this.field.isTerrain('grassyterrain')) {\n\t\t\t\tthis.debug('Orchard\\'s Gift boost');\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tonModifySpDPriority: 6,\n\t\tonModifySpD(spd, pokemon) {\n\t\t\tif (this.field.isTerrain('grassyterrain')) {\n\t\t\t\tthis.debug('Orchard\\'s Gift boost');\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t},\n\n\t// Appletun a la Mode\n\tservedcold: {\n\t\tshortDesc: \"This Pokemon's Defense is raised 2 stages if hit by an Ice move; Ice immunity.\",\n\t\tname: \"Served Cold\",\n\t\tonTryHit(target, source, move) {\n\t\t\tif (target !== source && move.type === 'Ice') {\n\t\t\t\tif (!this.boost({ def: 2 })) {\n\t\t\t\t\tthis.add('-immune', target, '[from] ability: Served Cold');\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// aQrator\n\tneverendingfhunt: {\n\t\tdesc: \"This Pokemon's non-damaging moves have their priority increased by 1. Opposing Dark-type Pokemon are immune to these moves, and any move called by these moves, if the resulting user of the move has this Ability.\",\n\t\tshortDesc: \"This Pokemon's Status moves have priority raised by 1, but Dark types are immune.\",\n\t\tname: \"Neverending fHunt\",\n\t\tonModifyPriority(priority, pokemon, target, move) {\n\t\t\tif (move?.category === 'Status') {\n\t\t\t\tmove.pranksterBoosted = true;\n\t\t\t\treturn priority + 1;\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// A Quag To The Past\n\tquagofruin: {\n\t\tshortDesc: \"Active Pokemon without this Ability have 0.85x Defense. Ignores abilities.\",\n\t\tdesc: \"Active Pokemon without this Ability have their Defense multiplied by 0.85x. This Pokemon's moves and their effects ignore certain Abilities of other Pokemon.\",\n\t\tname: \"Quag of Ruin\",\n\t\tonStart(pokemon) {\n\t\t\tif (this.suppressingAbility(pokemon)) return;\n\t\t\tthis.add('-ability', pokemon, 'Quag of Ruin');\n\t\t},\n\t\tonAnyModifyDef(def, target, source, move) {\n\t\t\tif (!move) return;\n\t\t\tconst abilityHolder = this.effectState.target;\n\t\t\tif (target.hasAbility('Quag of Ruin')) return;\n\t\t\tif (!move.ruinedDef?.hasAbility('Quag of Ruin')) move.ruinedDef = abilityHolder;\n\t\t\tif (move.ruinedDef !== abilityHolder) return;\n\t\t\tthis.debug('Quag of Ruin Def drop');\n\t\t\treturn this.chainModify(0.85);\n\t\t},\n\t\tonModifyMove(move) {\n\t\t\tmove.ignoreAbility = true;\n\t\t},\n\t\tflags: {},\n\t\tgen: 9,\n\t},\n\tclodofruin: {\n\t\tshortDesc: \"Active Pokemon without this Ability have 0.85x Attack. Ignores stat changes.\",\n\t\tdesc: \"Active Pokemon without this Ability have their Attack multiplied by 0.85x. This Pokemon ignores other Pokemon's stat stages when taking or doing damage.\",\n\t\tname: \"Clod of Ruin\",\n\t\tonStart(pokemon) {\n\t\t\tif (this.suppressingAbility(pokemon)) return;\n\t\t\tthis.add('-ability', pokemon, 'Clod of Ruin');\n\t\t},\n\t\tonAnyModifyAtk(atk, target, source, move) {\n\t\t\tif (!move) return;\n\t\t\tconst abilityHolder = this.effectState.target;\n\t\t\tif (target.hasAbility('Clod of Ruin')) return;\n\t\t\tif (!move.ruinedAtk?.hasAbility('Clod of Ruin')) move.ruinedAtk = abilityHolder;\n\t\t\tif (move.ruinedAtk !== abilityHolder) return;\n\t\t\tthis.debug('Clod of Ruin Atk drop');\n\t\t\treturn this.chainModify(0.85);\n\t\t},\n\t\tonAnyModifyBoost(boosts, pokemon) {\n\t\t\tconst unawareUser = this.effectState.target;\n\t\t\tif (unawareUser === pokemon) return;\n\t\t\tif (unawareUser === this.activePokemon && pokemon === this.activeTarget) {\n\t\t\t\tboosts['def'] = 0;\n\t\t\t\tboosts['spd'] = 0;\n\t\t\t\tboosts['evasion'] = 0;\n\t\t\t}\n\t\t\tif (pokemon === this.activePokemon && unawareUser === this.activeTarget) {\n\t\t\t\tboosts['atk'] = 0;\n\t\t\t\tboosts['def'] = 0;\n\t\t\t\tboosts['spa'] = 0;\n\t\t\t\tboosts['accuracy'] = 0;\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t\tgen: 9,\n\t},\n\n\t// Archas\n\tsaintlybullet: {\n\t\tshortDesc: \"Snipe Shot always has STAB and heals the user by 1/8 (or 1/6 on a crit) of its max HP.\",\n\t\tname: \"Saintly Bullet\",\n\t\tonModifyMove(move) {\n\t\t\tif (move.id === 'snipeshot') {\n\t\t\t\tmove.forceSTAB = true;\n\t\t\t}\n\t\t},\n\t\tonAfterMoveSecondarySelf(source, target, move) {\n\t\t\tif (move.id === 'snipeshot') {\n\t\t\t\tconst ratio = target.getMoveHitData(move).crit ? 6 : 8;\n\t\t\t\tthis.heal(source.maxhp / ratio, source, source);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t\tgen: 9,\n\t},\n\n\t// Arcueid\n\tmarblephantasm: {\n\t\tshortDesc: \"Deoxys-Defense is immune to status moves/effects. Deoxys-Attack gains Fairy type.\",\n\t\tdesc: \"If this Pokemon is a Deoxys-Defense, it is immune to status moves and cannot be afflicted with any non-volatile status condition. If this Pokemon is a Deoxys-Attack, it gains an additional Fairy typing for as long as this Ability remains active.\",\n\t\tname: \"Marble Phantasm\",\n\t\tonStart(source) {\n\t\t\tif (source.species.name === \"Deoxys-Attack\" && source.setType(['Psychic', 'Fairy'])) {\n\t\t\t\tthis.add('-start', source, 'typechange', source.getTypes(true).join('/'), '[from] ability: Marble Phantasm');\n\t\t\t} else if (source.species.name === \"Deoxys-Defense\" && source.setType('Psychic')) {\n\t\t\t\tthis.add('-start', source, 'typechange', 'Psychic', '[from] ability: Marble Phantasm');\n\t\t\t}\n\t\t},\n\t\tonTryHit(target, source, move) {\n\t\t\tif (move.category === 'Status' && target !== source && target.species.name === \"Deoxys-Defense\") {\n\t\t\t\tthis.add('-immune', target, '[from] ability: Marble Phantasm');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tonSetStatus(status, target, source, effect) {\n\t\t\tif (target.species.name === \"Deoxys-Defense\") {\n\t\t\t\tthis.add('-immune', target, '[from] ability: Marble Phantasm');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t\tgen: 9,\n\t},\n\n\t// Arsenal\n\tabsorbphys: {\n\t\tshortDesc: \"This Pokemon heals 1/4 of its max HP when hit by Normal moves; Normal immunity.\",\n\t\tname: \"Absorb Phys\",\n\t\tonTryHit(target, source, move) {\n\t\t\tif (target !== source && move.type === 'Normal') {\n\t\t\t\tif (!this.heal(target.baseMaxhp / 4)) {\n\t\t\t\t\tthis.add('-immune', target, '[from] ability: Absorb Phys');\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t\tgen: 9,\n\t},\n\n\t// Artemis\n\tsupervisedlearning: {\n\t\tshortDesc: \"Unaware + Clear Body.\",\n\t\tname: \"Supervised Learning\",\n\t\tonAnyModifyBoost(boosts, pokemon) {\n\t\t\tconst unawareUser = this.effectState.target;\n\t\t\tif (unawareUser === pokemon) return;\n\t\t\tif (unawareUser === this.activePokemon && pokemon === this.activeTarget) {\n\t\t\t\tboosts['def'] = 0;\n\t\t\t\tboosts['spd'] = 0;\n\t\t\t\tboosts['evasion'] = 0;\n\t\t\t}\n\t\t\tif (pokemon === this.activePokemon && unawareUser === this.activeTarget) {\n\t\t\t\tboosts['atk'] = 0;\n\t\t\t\tboosts['def'] = 0;\n\t\t\t\tboosts['spa'] = 0;\n\t\t\t\tboosts['accuracy'] = 0;\n\t\t\t}\n\t\t},\n\t\tonTryBoost(boost, target, source, effect) {\n\t\t\tif (source && target === source) return;\n\t\t\tlet showMsg = false;\n\t\t\tlet i: BoostID;\n\t\t\tfor (i in boost) {\n\t\t\t\tif (boost[i]! < 0) {\n\t\t\t\t\tdelete boost[i];\n\t\t\t\t\tshowMsg = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (showMsg && !(effect as ActiveMove).secondaries && effect.id !== 'octolock') {\n\t\t\t\tthis.add(\"-fail\", target, \"unboost\", \"[from] ability: Supervised Learning\", `[of] ${target}`);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t\tgen: 9,\n\t},\n\n\t// Audiino\n\tmitosis: {\n\t\tshortDesc: \"Regenerator + Multiscale.\",\n\t\tname: \"Mitosis\",\n\t\tonSwitchOut(pokemon) {\n\t\t\tpokemon.heal(pokemon.baseMaxhp / 3);\n\t\t},\n\t\tonSourceModifyDamage(damage, source, target, move) {\n\t\t\tif (target.hp >= target.maxhp) {\n\t\t\t\tthis.debug('Multiscale weaken');\n\t\t\t\treturn this.chainModify(0.5);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// ausma\n\tcascade: {\n\t\tshortDesc: \"At 25% HP, transforms into a Mismagius. Sigil's Storm becomes Ghost type and doesn't charge.\",\n\t\tname: \"Cascade\",\n\t\tonUpdate(pokemon) {\n\t\t\tif (pokemon.baseSpecies.baseSpecies !== 'Hatterene' || pokemon.transformed || !pokemon.hp) return;\n\t\t\tif (pokemon.species.id === 'mismagius' || pokemon.hp > pokemon.maxhp / 4) return;\n\t\t\tthis.add(`c:|${getName('ausma')}|that's it, yall mfs are about to face the wrath of Big Stall\u2122`);\n\t\t\tthis.add(`c:|${getName('ausma')}|or i guess moreso Big Pult. pick your poison`);\n\t\t\tthis.add('-activate', pokemon, 'ability: Cascade');\n\t\t\tchangeSet(this, pokemon, ssbSets['ausma-Mismagius'], true);\n\t\t\tpokemon.cureStatus();\n\t\t\tthis.heal(pokemon.maxhp / 3);\n\t\t\tif (this.field.pseudoWeather['trickroom']) {\n\t\t\t\tthis.field.removePseudoWeather('trickroom');\n\t\t\t\tthis.boost({ spe: 2 }, pokemon, pokemon, this.effect);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Bert122\n\tpesteringassault: {\n\t\tshortDesc: \"Uses Knock Off, Taunt, Torment, Soak, and Confuse Ray with 40% accuracy at turn end.\",\n\t\tname: \"Pestering Assault\",\n\t\tonResidual(pokemon, s, effect) {\n\t\t\tconst moves = ['knockoff', 'taunt', 'torment', 'soak', 'confuseray'];\n\t\t\tfor (const moveid of moves) {\n\t\t\t\tconst move = this.dex.getActiveMove(moveid);\n\t\t\t\tmove.accuracy = 40;\n\t\t\t\tconst target = pokemon.foes()[0];\n\t\t\t\tif (target && !target.fainted) {\n\t\t\t\t\tthis.actions.useMove(move, pokemon, { target, sourceEffect: effect });\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// blazeofvictory\n\tprismaticlens: {\n\t\tshortDesc: \"Pixilate + Tinted Lens.\",\n\t\tname: \"Prismatic Lens\",\n\t\tonModifyTypePriority: -1,\n\t\tonModifyType(move, pokemon) {\n\t\t\tconst noModifyType = [\n\t\t\t\t'judgment', 'multiattack', 'naturalgift', 'revelationdance', 'technoblast', 'terrainpulse', 'weatherball',\n\t\t\t];\n\t\t\tif (move.type === 'Normal' && !noModifyType.includes(move.id) &&\n\t\t\t\t!(move.isZ && move.category !== 'Status') && !(move.name === 'Tera Blast' && pokemon.terastallized)) {\n\t\t\t\tmove.type = 'Fairy';\n\t\t\t\tmove.typeChangerBoosted = this.effect;\n\t\t\t}\n\t\t},\n\t\tonBasePowerPriority: 23,\n\t\tonBasePower(basePower, pokemon, target, move) {\n\t\t\tif (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]);\n\t\t},\n\t\tonModifyDamage(damage, source, target, move) {\n\t\t\tif (target.getMoveHitData(move).typeMod < 0) {\n\t\t\t\tthis.debug('Tinted Lens boost');\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Blitz\n\tblitzofruin: {\n\t\tshortDesc: \"Active Pokemon without this Ability have 0.75x Speed.\",\n\t\tdesc: \"Active Pokemon without this Ability have their Speed multiplied by 0.75x.\",\n\t\tname: \"Blitz of Ruin\",\n\t\tonStart(pokemon) {\n\t\t\tthis.add('-ability', pokemon, 'Blitz of Ruin');\n\t\t\tthis.add('-message', `${pokemon.name}'s Blitz of Ruin lowered the Speed of all surrounding Pok\u00E9mon!`);\n\t\t},\n\t\tonAnyModifySpe(spe, pokemon) {\n\t\t\tif (!pokemon.hasAbility('Blitz of Ruin')) {\n\t\t\t\treturn this.chainModify(0.75);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Breadey\n\tpainfulexit: {\n\t\tshortDesc: \"When this Pokemon switches out, foes lose 25% HP.\",\n\t\tname: \"Painful Exit\",\n\t\tonBeforeSwitchOutPriority: -1,\n\t\tonBeforeSwitchOut(pokemon) {\n\t\t\tthis.add(`c:|${getName('Breadey')}|Just kidding!! Take this KNUCKLE SANDWICH`);\n\t\t\tfor (const foe of pokemon.foes()) {\n\t\t\t\tif (!foe || foe.fainted || !foe.hp) continue;\n\t\t\t\tthis.add(`-anim`, pokemon, \"Tackle\", foe);\n\t\t\t\tthis.damage(foe.hp / 4, foe, pokemon);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Chloe\n\tacetosa: {\n\t\tshortDesc: \"This Pokemon's moves are changed to be Grass type and have 1.2x power.\",\n\t\tname: \"Acetosa\",\n\t\tonModifyTypePriority: 1,\n\t\tonModifyType(move, pokemon) {\n\t\t\tconst noModifyType = [\n\t\t\t\t'hiddenpower', 'judgment', 'multiattack', 'naturalgift', 'revelationdance', 'struggle', 'technoblast', 'terrainpulse', 'weatherball',\n\t\t\t];\n\t\t\tif (!(move.isZ && move.category !== 'Status') && !noModifyType.includes(move.id) &&\n\t\t\t\t!(move.name === 'Tera Blast' && pokemon.terastallized)) {\n\t\t\t\tmove.type = 'Grass';\n\t\t\t\tmove.typeChangerBoosted = this.effect;\n\t\t\t}\n\t\t},\n\t\tonBasePowerPriority: 23,\n\t\tonBasePower(basePower, pokemon, target, move) {\n\t\t\tif (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]);\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Chris\n\tastrothunder: {\n\t\tshortDesc: \"Drizzle + Static.\",\n\t\tname: \"Astrothunder\",\n\t\tonStart(source) {\n\t\t\tif (source.species.id === 'kyogre' && source.item === 'blueorb') return;\n\t\t\tthis.field.setWeather('raindance');\n\t\t},\n\t\tonDamagingHit(damage, target, source, move) {\n\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\tif (this.randomChance(3, 10)) {\n\t\t\t\t\tsource.trySetStatus('par', target);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\n\t// Clefable\n\tthatshacked: {\n\t\tshortDesc: \"Tries to inflict the foe with Torment at the end of each turn.\",\n\t\tname: \"That's Hacked\",\n\t\tonResidual(target, source, effect) {\n\t\t\tif (!target.foes()?.length) return;\n\t\t\tconst abilMessages = [\n\t\t\t\t\"All hacks and hacking methods are banned!\",\n\t\t\t\t\"Can't be having that.\",\n\t\t\t\t\"Naaah, miss me with that shit.\",\n\t\t\t\t\"Bit bullshit that, mate.\",\n\t\t\t\t\"Wait, thats illegal!\",\n\t\t\t\t\"Nope.\",\n\t\t\t\t\"I can't believe you've done this.\",\n\t\t\t\t\"No thank you.\",\n\t\t\t\t\"Seems a bit suss.\",\n\t\t\t\t\"Thats probably hacked, shouldnt use it here.\",\n\t\t\t\t\"Hacks will get you banned.\",\n\t\t\t\t\"You silly sausage\",\n\t\t\t\t\"Can you not?\",\n\t\t\t\t\"Yeah, thats a no from me.\",\n\t\t\t\t\"Lets not\",\n\t\t\t\t\"No fun allowed\",\n\t\t\t];\n\t\t\tthis.add(`c:|${getName((target.illusion || target).name)}|${this.sample(abilMessages)}`);\n\t\t\tfor (const foe of target.foes()) {\n\t\t\t\tif (foe && !foe.fainted && !foe.volatiles['torment']) {\n\t\t\t\t\tfoe.addVolatile('torment');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Clementine\n\tmeltingpoint: {\n\t\tshortDesc: \"+2 Speed. Fire moves change user to Water type. Fire immunity.\",\n\t\tname: \"Melting Point\",\n\t\tonTryHit(target, source, move) {\n\t\t\tif (target !== source && move.type === 'Fire') {\n\t\t\t\tif (target.setType('Water')) {\n\t\t\t\t\tthis.add('-start', target, 'typechange', 'Water', '[from] ability: Melting Point');\n\t\t\t\t\tthis.boost({ spe: 2 }, target, source, this.dex.abilities.get('meltingpoint'));\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-immune', target, '[from] ability: Melting Point');\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t},\n\n\t// clerica\n\tmasquerade: {\n\t\tshortDesc: \"(Mimikyu only) The first hit is blocked: instead, takes 1/8 damage and gets +1 Atk/Spe.\",\n\t\tdesc: \"If this Pokemon is a Mimikyu, the first hit it takes in battle deals 0 neutral damage. Its disguise is then broken, it changes to Busted Form, its Attack and Speed are boosted by 1 stage, and it loses 1/8 of its max HP. Confusion damage also breaks the disguise.\",\n\t\tname: \"Masquerade\",\n\t\tonDamagePriority: 1,\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (\n\t\t\t\teffect && effect.effectType === 'Move' &&\n\t\t\t\t['mimikyu', 'mimikyutotem'].includes(target.species.id) && !target.transformed\n\t\t\t) {\n\t\t\t\tthis.add('-activate', target, 'ability: Masquerade');\n\t\t\t\tthis.effectState.busted = true;\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t},\n\t\tonCriticalHit(target, source, move) {\n\t\t\tif (!target) return;\n\t\t\tif (!['mimikyu', 'mimikyutotem'].includes(target.species.id) || target.transformed) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst hitSub = target.volatiles['substitute'] && !move.flags['bypasssub'] && !(move.infiltrates && this.gen >= 6);\n\t\t\tif (hitSub) return;\n\n\t\t\tif (!target.runImmunity(move.type)) return;\n\t\t\treturn false;\n\t\t},\n\t\tonEffectiveness(typeMod, target, type, move) {\n\t\t\tif (!target || move.category === 'Status') return;\n\t\t\tif (!['mimikyu', 'mimikyutotem'].includes(target.species.id) || target.transformed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst hitSub = target.volatiles['substitute'] && !move.flags['bypasssub'] && !(move.infiltrates && this.gen >= 6);\n\t\t\tif (hitSub) return;\n\n\t\t\tif (!target.runImmunity(move.type)) return;\n\t\t\treturn 0;\n\t\t},\n\t\tonUpdate(pokemon) {\n\t\t\tif (['mimikyu', 'mimikyutotem'].includes(pokemon.species.id) && this.effectState.busted) {\n\t\t\t\tconst speciesid = pokemon.species.id === 'mimikyutotem' ? 'Mimikyu-Busted-Totem' : 'Mimikyu-Busted';\n\t\t\t\tpokemon.formeChange(speciesid, this.effect, true);\n\t\t\t\tthis.damage(pokemon.baseMaxhp / 8, pokemon, pokemon, this.dex.species.get(speciesid));\n\t\t\t\tthis.boost({ atk: 1, spe: 1 });\n\t\t\t\tthis.add(`c:|${getName('clerica')}|oop`);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1, failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1 },\n\t},\n\n\t// Clouds\n\tjetstream: {\n\t\tshortDesc: \"Delta Stream + Stealth Rock immunity.\",\n\t\tname: \"Jet Stream\",\n\t\tonStart(source) {\n\t\t\tthis.field.setWeather('deltastream');\n\t\t\tthis.add('message',\t`Strong air currents keep Flying-types ahead of the chase!`);\n\t\t},\n\t\tonAnySetWeather(target, source, weather) {\n\t\t\tif (this.field.isWeather('deltastream') && !STRONG_WEATHERS.includes(weather.id)) return false;\n\t\t},\n\t\tonEnd(pokemon) {\n\t\t\tif (this.field.weatherState.source !== pokemon) return;\n\t\t\tfor (const target of this.getAllActive()) {\n\t\t\t\tif (target === pokemon) continue;\n\t\t\t\tif (target.hasAbility(['deltastream', 'jetstream'])) {\n\t\t\t\t\tthis.field.weatherState.source = target;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.field.clearWeather();\n\t\t},\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect && effect.name === 'Stealth Rock') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Coolcodename\n\tfirewall: {\n\t\tshortDesc: \"Burns foes that attempt to use status moves on this Pokemon; Status move immunity.\",\n\t\tname: \"Firewall\",\n\t\tonTryHit(target, source, move) {\n\t\t\tif (move.category === 'Status' && target !== source) {\n\t\t\t\tif (!source.trySetStatus('brn', target)) {\n\t\t\t\t\tthis.add('-immune', target, '[from] ability: Firewall');\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Corthius\n\tgrassyemperor: {\n\t\tshortDesc: \"On switch-in, summons Grassy Terrain. During Grassy Terrain, Attack is 1.33x.\",\n\t\tname: \"Grassy Emperor\",\n\t\tonStart(pokemon) {\n\t\t\tif (this.field.setTerrain('grassyterrain')) {\n\t\t\t\tthis.add('-activate', pokemon, 'Grassy Emperor', '[source]');\n\t\t\t} else if (this.field.isTerrain('grassyterrain')) {\n\t\t\t\tthis.add('-activate', pokemon, 'ability: Grassy Emperor');\n\t\t\t}\n\t\t},\n\t\tonModifyAtkPriority: 5,\n\t\tonModifyAtk(atk, pokemon) {\n\t\t\tif (this.field.isTerrain('grassyterrain')) {\n\t\t\t\tthis.debug('Grassy Emperor boost');\n\t\t\t\treturn this.chainModify([5461, 4096]);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Dawn of Artemis\n\tformchange: {\n\t\tshortDesc: \">50% HP Necrozma, else Necrozma-Ultra. SpA boosts become Atk boosts and vice versa.\",\n\t\tdesc: \"If this Pokemon is a Necrozma, it changes to Necrozma-Ultra and switches its Attack and Special Attack stat stage changes if it has 1/2 or less of its maximum HP at the end of a turn. If Necrozma-Ultra's HP is above 1/2 of its maximum HP at the end of a turn, it changes back to Necrozma and switches its Attack and Special Attack stat stage changes.\",\n\t\tname: \"Form Change\",\n\t\tonResidual(pokemon) {\n\t\t\tif (pokemon.baseSpecies.baseSpecies !== 'Necrozma' || pokemon.transformed || !pokemon.hp) return;\n\t\t\tlet newSet = 'Dawn of Artemis';\n\t\t\tif (pokemon.hp > pokemon.maxhp / 2) {\n\t\t\t\tif (pokemon.species.id === 'necrozma') return;\n\t\t\t\tthis.add(`c:|${getName('Dawn of Artemis')}|Good, I'm healthy again, time to swap back.`);\n\t\t\t} else {\n\t\t\t\tif (pokemon.species.id === 'necrozmaultra') return;\n\t\t\t\tthis.add(`c:|${getName('Dawn of Artemis')}|Time for me to transform and you to witness the power of Ares now!`);\n\t\t\t\tnewSet += '-Ultra';\n\t\t\t}\n\t\t\tthis.add('-activate', pokemon, 'ability: Form Change');\n\t\t\tchangeSet(this, pokemon, ssbSets[newSet]);\n\t\t\t[pokemon.boosts['atk'], pokemon.boosts['spa']] = [pokemon.boosts['spa'], pokemon.boosts['atk']];\n\t\t\tthis.add('-setboost', pokemon, 'spa', pokemon.boosts['spa'], '[silent]');\n\t\t\tthis.add('-setboost', pokemon, 'atk', pokemon.boosts['atk'], '[silent]');\n\t\t\tthis.add('-message', `${pokemon.name} swapped its Attack and Special Attack boosts!`);\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// DaWoblefet\n\tshadowartifice: {\n\t\tshortDesc: \"Traps adjacent foes. If KOed with a move, that move's user loses an equal amount of HP.\",\n\t\tname: \"Shadow Artifice\",\n\t\tonFoeTrapPokemon(pokemon) {\n\t\t\tif (!pokemon.hasAbility(['shadowtag', 'shadowartifice']) && pokemon.isAdjacent(this.effectState.target)) {\n\t\t\t\tpokemon.tryTrap(true);\n\t\t\t}\n\t\t},\n\t\tonFoeMaybeTrapPokemon(pokemon, source) {\n\t\t\tif (!source) source = this.effectState.target;\n\t\t\tif (!source || !pokemon.isAdjacent(source)) return;\n\t\t\tif (!pokemon.hasAbility(['shadowtag', 'shadowartifice'])) {\n\t\t\t\tpokemon.maybeTrapped = true;\n\t\t\t}\n\t\t},\n\t\tonDamagingHitOrder: 1,\n\t\tonDamagingHit(damage, target, source, move) {\n\t\t\tif (!target.hp) {\n\t\t\t\tthis.damage(target.getUndynamaxedHP(damage), source, target);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// dhelmise\n\tcoalescence: {\n\t\tshortDesc: \"Moves drain 37%. Allies heal 5% HP. <25% HP, moves drain 114%, allies get 10%.\",\n\t\tdesc: \"All moves heal 37% of damage dealt. Unfainted allies heal 5% HP at the end of each turn. If this Pokemon's HP is less than 25%, moves heal 114% of damage dealt, and allies restore 10% of their health.\",\n\t\tname: \"Coalescence\",\n\t\tonModifyMove(move, source, target) {\n\t\t\tif (move.category !== \"Status\") {\n\t\t\t\t// move.flags['heal'] = 1; // For Heal Block\n\t\t\t\tif (source.hp > source.maxhp / 4) {\n\t\t\t\t\tmove.drain = [37, 100];\n\t\t\t\t} else {\n\t\t\t\t\tmove.drain = [114, 100];\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonResidualOrder: 5,\n\t\tonResidualSubOrder: 4,\n\t\tonResidual(pokemon) {\n\t\t\tfor (const ally of pokemon.side.pokemon) {\n\t\t\t\tif (!ally.hp || ally === pokemon) continue;\n\t\t\t\tif (ally.heal(this.modify(ally.baseMaxhp, pokemon.hp > pokemon.maxhp / 4 ? 0.05 : 0.1))) {\n\t\t\t\t\tthis.add('-heal', ally, ally.getHealth, '[from] ability: Coalescence', `[of] ${pokemon}`);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Elly\n\tstormsurge: {\n\t\tshortDesc: \"On switch-in, summons rain that causes wind moves to have perfect accuracy and 1.2x Base Power.\",\n\t\tdesc: \"Summons the Storm Surge weather on switch-in. While Storm Surge is active, wind moves used by any Pokemon are perfectly accurate and become 20% stronger. Water moves are 50% stronger, Fire moves are 50% weaker.\",\n\t\tname: \"Storm Surge\",\n\t\tonStart(source) {\n\t\t\tthis.field.setWeather('stormsurge');\n\t\t},\n\t},\n\n\t// Emboar02\n\thogwash: {\n\t\tshortDesc: \"Reckless; on STAB moves, also add Rock Head. On non-STAB moves, recoil is recovery.\",\n\t\tdesc: \"This Pokemon's attacks that would normally have recoil or crash damage have their power multiplied by 1.2. Does not affect Struggle. STAB recoil attacks used by this Pokemon do not deal recoil damage to the user. Non-STAB recoil attacks used by this Pokemon will heal the user instead of dealing recoil damage.\",\n\t\tname: \"Hogwash\",\n\t\tonBasePowerPriority: 23,\n\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\tif (move.recoil || move.hasCrashDamage) {\n\t\t\t\tthis.debug('Hogwash boost');\n\t\t\t\treturn this.chainModify([4915, 4096]);\n\t\t\t}\n\t\t},\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect.id === 'recoil') {\n\t\t\t\tlet trueSource = source;\n\t\t\t\t// For some reason, the source of the damage is the substitute user when\n\t\t\t\t// hitting a sub.\n\t\t\t\tif (source !== target) trueSource = target;\n\t\t\t\tif (!this.activeMove) throw new Error(\"Battle.activeMove is null\");\n\t\t\t\tif (this.activeMove.id !== 'struggle') {\n\t\t\t\t\tif (!trueSource.hasType(this.activeMove.type)) this.heal(damage);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\n\t// Frostyicelad\n\talmostfrosty: {\n\t\tshortDesc: \"This Pokemon's damaging moves hit twice. The second hit has its damage halved.\",\n\t\tname: \"Almost Frosty\",\n\t\tonPrepareHit(source, target, move) {\n\t\t\tif (move.category === 'Status' || move.multihit || move.flags['noparentalbond'] || move.flags['charge'] ||\n\t\t\t\tmove.flags['futuremove'] || move.spreadHit || move.isZ || move.isMax) return;\n\t\t\tmove.multihit = 2;\n\t\t\tmove.multihitType = 'parentalbond';\n\t\t},\n\t\t// Damage modifier implemented in BattleActions#modifyDamage()\n\t\tonSourceModifySecondaries(secondaries, target, source, move) {\n\t\t\tif (move.multihitType === 'parentalbond' && move.id === 'secretpower' && move.hit < 2) {\n\t\t\t\t// hack to prevent accidentally suppressing King's Rock/Razor Fang\n\t\t\t\treturn secondaries.filter(effect => effect.volatileStatus === 'flinch');\n\t\t\t}\n\t\t},\n\t},\n\n\t// Frozoid\n\tsnowballer: {\n\t\tshortDesc: \"This Pokemon's Attack is raised 1 stage if hit by an Ice move; Ice immunity.\",\n\t\tname: \"Snowballer\",\n\t\tonTryHitPriority: 1,\n\t\tonTryHit(target, source, move) {\n\t\t\tif (target !== source && move.type === 'Ice') {\n\t\t\t\tif (!this.boost({ atk: 1 })) {\n\t\t\t\t\tthis.add('-immune', target, '[from] ability: Snowballer');\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Fame\n\tsocialjumpluffwarrior: {\n\t\tshortDesc: \"Serene Grace + Mycelium Might.\",\n\t\tname: \"Social Jumpluff Warrior\",\n\t\tonFractionalPriority(priority, pokemon, target, move) {\n\t\t\tif (move.category === 'Status') {\n\t\t\t\treturn -0.1;\n\t\t\t}\n\t\t},\n\t\tonModifyMovePriority: -2,\n\t\tonModifyMove(move) {\n\t\t\tif (move.category === 'Status') {\n\t\t\t\tmove.ignoreAbility = true;\n\t\t\t}\n\t\t\tif (move.secondaries) {\n\t\t\t\tthis.debug('doubling secondary chance');\n\t\t\t\tfor (const secondary of move.secondaries) {\n\t\t\t\t\tif (secondary.chance) secondary.chance *= 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (move.self?.chance) move.self.chance *= 2;\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Ganjafin\n\tgamblingaddiction: {\n\t\tshortDesc: \"When under 1/4 max HP: +1 Spe, heal to full HP, and all moves become Final Gambit.\",\n\t\tname: \"Gambling Addiction\",\n\t\tonResidualOrder: 29,\n\t\tonResidual(pokemon) {\n\t\t\tif (!this.effectState.gamblingAddiction && pokemon.hp && pokemon.hp < pokemon.maxhp / 4) {\n\t\t\t\tthis.boost({ spe: 1 });\n\t\t\t\tthis.heal(pokemon.maxhp);\n\t\t\t\tconst move = this.dex.moves.get('finalgambit');\n\t\t\t\tconst finalGambit = {\n\t\t\t\t\tmove: move.name,\n\t\t\t\t\tid: move.id,\n\t\t\t\t\tpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5,\n\t\t\t\t\tmaxpp: move.noPPBoosts ? move.pp : move.pp * 8 / 5,\n\t\t\t\t\ttarget: move.target,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t\tused: false,\n\t\t\t\t};\n\t\t\t\tpokemon.moveSlots.fill(finalGambit);\n\t\t\t\tpokemon.baseMoveSlots.fill(finalGambit);\n\t\t\t\tthis.effectState.gamblingAddiction = true;\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// havi\n\tmensiscage: {\n\t\tshortDesc: \"Immune to status and is considered to be asleep. 30% chance to Disable when hit.\",\n\t\tname: \"Mensis Cage\",\n\t\tonDamagingHit(damage, target, source, move) {\n\t\t\tif (source.volatiles['disable']) return;\n\t\t\tif (!move.isMax && !move.flags['futuremove'] && move.id !== 'struggle') {\n\t\t\t\tif (this.randomChance(3, 10)) {\n\t\t\t\t\tsource.addVolatile('disable', this.effectState.target);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonStart(pokemon) {\n\t\t\tthis.add('-ability', pokemon, 'Mensis Cage');\n\t\t},\n\t\tonSetStatus(status, target, source, effect) {\n\t\t\tif ((effect as Move)?.status) {\n\t\t\t\tthis.add('-immune', target, '[from] ability: Mensis Cage');\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t// Permanent sleep \"status\" implemented in the relevant sleep-checking effects\n\t\tflags: {},\n\t},\n\n\t// Hecate\n\thacking: {\n\t\tname: \"Hacking\",\n\t\tshortDesc: \"Hacks into PS and finds out if the enemy has any super effective moves.\",\n\t\tonStart(pokemon) {\n\t\t\tconst name = (pokemon.illusion || pokemon).name;\n\t\t\tthis.add(`c:|${getName(name)}|One moment, please. One does not simply go into battle blind.`);\n\t\t\tconst side = pokemon.side.id === 'p1' ? 'p2' : 'p1';\n\t\t\tthis.add(\n\t\t\t\t`message`,\n\t\t\t\t(\n\t\t\t\t\t`ssh [email protected] && nc -U logs/repl/sim <<< ` +\n\t\t\t\t\t`\"Users.get('${this.toID(name)}').popup(battle.sides.get('${side}').pokemon.map(m => Teams.exportSet(m)))\"`\n\t\t\t\t)\n\t\t\t);\n\t\t\tlet warnMoves: (Move | Pokemon)[][] = [];\n\t\t\tlet warnBp = 1;\n\t\t\tfor (const target of pokemon.foes()) {\n\t\t\t\tfor (const moveSlot of target.moveSlots) {\n\t\t\t\t\tconst move = this.dex.moves.get(moveSlot.move);\n\t\t\t\t\tlet bp = move.basePower;\n\t\t\t\t\tif (move.ohko) bp = 150;\n\t\t\t\t\tif (move.id === 'counter' || move.id === 'metalburst' || move.id === 'mirrorcoat') bp = 120;\n\t\t\t\t\tif (bp === 1) bp = 80;\n\t\t\t\t\tif (!bp && move.category !== 'Status') bp = 80;\n\t\t\t\t\tif (bp > warnBp) {\n\t\t\t\t\t\twarnMoves = [[move, target]];\n\t\t\t\t\t\twarnBp = bp;\n\t\t\t\t\t} else if (bp === warnBp) {\n\t\t\t\t\t\twarnMoves.push([move, target]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!warnMoves.length) {\n\t\t\t\tthis.add(`c:|${getName(name)}|Fascinating. None of your sets have any moves of interest.`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [warnMoveName, warnTarget] = this.sample(warnMoves);\n\t\t\tthis.add(\n\t\t\t\t'message',\n\t\t\t\t`${name} hacked into PS and looked at ${name === 'Hecate' ? 'her' : 'their'} opponent's sets. ` +\n\t\t\t\t`${warnTarget.name}'s move ${warnMoveName} drew ${name === 'Hecate' ? 'her' : 'their'} eye.`\n\t\t\t);\n\t\t\tthis.add(`c:|${getName(name)}|Interesting. With that in mind, bring it!`);\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// HoeenHero\n\tmisspelled: {\n\t\tshortDesc: \"Swift Swim + Special Attack 1.5x, Accuracy 0.8x. Never misses, only misspells.\",\n\t\tname: \"Misspelled\",\n\t\tonModifySpAPriority: 5,\n\t\tonModifySpA(spa) {\n\t\t\treturn this.modify(spa, 1.5);\n\t\t},\n\t\tonSourceModifyAccuracyPriority: -1,\n\t\tonSourceModifyAccuracy(accuracy, target, source, move) {\n\t\t\tif (move.category === 'Special' && typeof accuracy === 'number') {\n\t\t\t\treturn this.chainModify([3277, 4096]);\n\t\t\t}\n\t\t},\n\t\tonModifySpe(spe, pokemon) {\n\t\t\tif (['raindance', 'primordialsea'].includes(pokemon.effectiveWeather())) {\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\t// Misspelling implemented in scripts.ts#hitStepAccuracy\n\t\tflags: {},\n\t},\n\n\t// Hydrostatics\n\thydrostaticpositivity: {\n\t\tshortDesc: \"Sturdy + Storm Drain + Motor Drive + 1.3x accuracy of Water & Electric moves\",\n\t\tname: \"Hydrostatic Positivity\",\n\t\tonTryHit(target, source, move) {\n\t\t\t// Storm Drain\n\t\t\tif (target !== source && move.type === 'Water') {\n\t\t\t\tif (!this.boost({ spa: 1 })) {\n\t\t\t\t\tthis.add('-immune', target, '[from] ability: Hydrostatic Positivity');\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Motor Drive\n\t\t\tif (target !== source && move.type === 'Electric') {\n\t\t\t\tif (!this.boost({ spe: 1 })) {\n\t\t\t\t\tthis.add('-immune', target, '[from] ability: Hydrostatic Positivity');\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Sturdy\n\t\t\tif (move.ohko) {\n\t\t\t\tthis.add('-immune', target, '[from] ability: Hydrostatic Positivity');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tonAnyRedirectTarget(target, source, source2, move) {\n\t\t\t// Storm Drain\n\t\t\tif (move.type !== 'Water' || ['firepledge', 'grasspledge', 'waterpledge'].includes(move.id)) return;\n\t\t\tconst redirectTarget = ['randomNormal', 'adjacentFoe'].includes(move.target) ? 'normal' : move.target;\n\t\t\tif (this.validTarget(this.effectState.target, source, redirectTarget)) {\n\t\t\t\tif (move.smartTarget) move.smartTarget = false;\n\t\t\t\tif (this.effectState.target !== target) {\n\t\t\t\t\tthis.add('-activate', this.effectState.target, 'ability: Hydrostatic Positivity');\n\t\t\t\t}\n\t\t\t\treturn this.effectState.target;\n\t\t\t}\n\t\t},\n\t\tonDamagePriority: -30,\n\t\tonDamage(damage, target, source, effect) {\n\t\t\t// Sturdy\n\t\t\tif (target.hp === target.maxhp && damage >= target.hp && effect && effect.effectType === 'Move') {\n\t\t\t\tthis.add('-ability', target, 'Hydrostatic Positivity');\n\t\t\t\treturn target.hp - 1;\n\t\t\t}\n\t\t},\n\t\tonSourceModifyAccuracyPriority: -1,\n\t\tonSourceModifyAccuracy(accuracy, target, source, move) {\n\t\t\tif (typeof accuracy !== 'number') return;\n\t\t\tif (['Electric', 'Water'].includes(move.type)) {\n\t\t\t\tthis.debug('Hydrostatic Positivity - enhancing accuracy');\n\t\t\t\treturn this.chainModify([5325, 4096]);\n\t\t\t}\n\t\t},\n\t},\n\n\t// Imperial\n\tfrozenfortuity: {\n\t\tshortDesc: \"On switch-in, changes the Pokemon to Kyurem-Black if the target's Defense is lower, otherwise Kyurem-White.\",\n\t\tname: \"Frozen Fortuity\",\n\t\tonStart(pokemon) {\n\t\t\tif (pokemon.species.id !== 'kyurem' || pokemon.transformed || !pokemon.hp) return;\n\t\t\tif (pokemon.beingCalledBack) return;\n\t\t\tlet totaldef = 0;\n\t\t\tlet totalspd = 0;\n\t\t\tfor (const target of pokemon.foes()) {\n\t\t\t\ttotaldef += target.getStat('def', false, true);\n\t\t\t\ttotalspd += target.getStat('spd', false, true);\n\t\t\t}\n\t\t\tthis.add('-ability', pokemon, 'Frozen Fortuity');\n\t\t\tif (totaldef < totalspd) {\n\t\t\t\tchangeSet(this, pokemon, ssbSets['Imperial-Black']);\n\t\t\t} else {\n\t\t\t\tchangeSet(this, pokemon, ssbSets['Imperial-White']);\n\t\t\t}\n\t\t},\n\t\tonSwitchOut(pokemon) {\n\t\t\tif (pokemon.baseSpecies.baseSpecies !== 'Kyurem' || pokemon.transformed || !pokemon.hp) return;\n\t\t\tchangeSet(this, pokemon, ssbSets['Imperial']);\n\t\t},\n\t\tflags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1 },\n\t},\n\n\t// in the hills\n\tilliterit: {\n\t\tshortDesc: \"Immune to moves with 12 or more alphanumeric characters.\",\n\t\tname: \"Illiterit\",\n\t\tonTryHit(target, source, move) {\n\t\t\tif (target !== source && move.id.length >= 12) {\n\t\t\t\tthis.add('-immune', target, '[from] ability: Illiterit');\n\t\t\t\tthis.add(`c:|${getName('in the hills')}|Gee ${source.name}, maybe I should get a dictionary so I can understand what move you just used.`);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Irpachuza\n\tmimeknowsbest: {\n\t\tshortDesc: \"When this Pokemon switches in, it uses a random screen or protect move.\",\n\t\tdesc: \"When this Pokemon switches in, it will randomly use one of Light Screen, Reflect, Protect, Detect, Barrier, Spiky Shield, Baneful Bunker, Safeguard, Mist, King's Shield, Magic Coat, or Aurora Veil.\",\n\t\tname: \"Mime knows best\",\n\t\tonStart(target) {\n\t\t\tconst randomMove = [\n\t\t\t\t\"Light Screen\", \"Reflect\", \"Protect\", \"Detect\", \"Barrier\", \"Spiky Shield\", \"Baneful Bunker\",\n\t\t\t\t\"Safeguard\", \"Mist\", \"King's Shield\", \"Magic Coat\", \"Aurora Veil\",\n\t\t\t];\n\t\t\tconst move = this.dex.getActiveMove(this.sample(randomMove));\n\t\t\t// allows use of Aurora Veil without hail\n\t\t\tif (move.name === \"Aurora Veil\") delete move.onTry;\n\t\t\tthis.actions.useMove(move, target);\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// J0rdy004\n\tfortifyingfrost: {\n\t\tshortDesc: \"If Snow is active, this Pokemon's Sp. Atk and Sp. Def are 1.5x.\",\n\t\tname: \"Fortifying Frost\",\n\t\tonModifySpAPriority: 5,\n\t\tonModifySpA(spa, pokemon) {\n\t\t\tif (['hail', 'snowscape'].includes(pokemon.effectiveWeather())) {\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tonModifySpD(spd, pokemon) {\n\t\t\tif (['hail', 'snowscape'].includes(pokemon.effectiveWeather())) {\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// kenn\n\tdeserteddunes: {\n\t\tshortDesc: \"Summons Deserted Dunes until switch-out; Sandstorm + Rock weaknesses removed.\",\n\t\tdesc: \"On switch-in, the weather becomes Deserted Dunes, which removes the weaknesses of the Rock type from Rock-type Pokemon. This weather remains in effect until this Ability is no longer active for any Pokemon, or the weather is changed by the Desolate Land, Primordial Sea or Delta Stream Abilities.\",\n\t\tname: \"Deserted Dunes\",\n\t\tonStart(source) {\n\t\t\tthis.field.setWeather('deserteddunes');\n\t\t},\n\t\tonAnySetWeather(target, source, weather) {\n\t\t\tif (this.field.getWeather().id === 'deserteddunes' && !STRONG_WEATHERS.includes(weather.id)) return false;\n\t\t},\n\t\tonEnd(pokemon) {\n\t\t\tif (this.field.weatherState.source !== pokemon) return;\n\t\t\tfor (const target of this.getAllActive()) {\n\t\t\t\tif (target === pokemon) continue;\n\t\t\t\tif (target.hasAbility('deserteddunes')) {\n\t\t\t\t\tthis.field.weatherState.source = target;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.field.clearWeather();\n\t\t},\n\t\tflags: {},\n\t\tgen: 9,\n\t},\n\n\t// Kennedy\n\tanfield: {\n\t\tshortDesc: \"Clears terrain/hazards/pseudo weathers. Summons Anfield Atmosphere.\",\n\t\tname: \"Anfield\",\n\t\tonStart(target) {\n\t\t\tlet success = false;\n\t\t\tif (this.field.terrain) {\n\t\t\t\tsuccess = this.field.clearTerrain();\n\t\t\t}\n\t\t\tfor (const side of this.sides) {\n\t\t\t\tconst remove = [\n\t\t\t\t\t'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge',\n\t\t\t\t];\n\t\t\t\tfor (const sideCondition of remove) {\n\t\t\t\t\tif (side.removeSideCondition(sideCondition)) {\n\t\t\t\t\t\tthis.add('-sideend', side, this.dex.conditions.get(sideCondition).name, '[from] ability: Anfield', `[of] ${target}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const pseudoWeather of PSEUDO_WEATHERS) {\n\t\t\t\tif (this.field.removePseudoWeather(pseudoWeather)) success = true;\n\t\t\t}\n\t\t\tif (success) {\n\t\t\t\tthis.add('-activate', target, 'ability: Anfield');\n\t\t\t}\n\t\t\tthis.field.addPseudoWeather('anfieldatmosphere', target, target.getAbility());\n\t\t},\n\t\tflags: {},\n\t},\n\tyoullneverwalkalone: {\n\t\tshortDesc: \"Boosts Atk, Def, SpD, and Spe by 25% under Anfield Atmosphere.\",\n\t\tname: \"You'll Never Walk Alone\",\n\t\tonStart(pokemon) {\n\t\t\tif (this.field.getPseudoWeather('anfieldatmosphere')) {\n\t\t\t\tthis.add('-ability', pokemon, 'You\\'ll Never Walk Alone');\n\t\t\t}\n\t\t},\n\t\tonModifyAtkPriority: 5,\n\t\tonModifyAtk(atk, source, target, move) {\n\t\t\tif (this.field.getPseudoWeather('anfieldatmosphere')) {\n\t\t\t\tthis.debug('You\\'ll Never Walk Alone atk boost');\n\t\t\t\treturn this.chainModify([5120, 4096]);\n\t\t\t}\n\t\t},\n\t\tonModifyDefPriority: 6,\n\t\tonModifyDef(def, target, source, move) {\n\t\t\tif (this.field.getPseudoWeather('anfieldatmosphere')) {\n\t\t\t\tthis.debug('You\\'ll Never Walk Alone def boost');\n\t\t\t\treturn this.chainModify([5120, 4096]);\n\t\t\t}\n\t\t},\n\t\tonModifySpDPriority: 6,\n\t\tonModifySpD(spd, target, source, move) {\n\t\t\tif (this.field.getPseudoWeather('anfieldatmosphere')) {\n\t\t\t\tthis.debug('You\\'ll Never Walk Alone spd boost');\n\t\t\t\treturn this.chainModify([5120, 4096]);\n\t\t\t}\n\t\t},\n\t\tonModifySpe(spe, pokemon) {\n\t\t\tif (this.field.getPseudoWeather('anfieldatmosphere')) {\n\t\t\t\tthis.debug('You\\'ll Never Walk Alone spe boost');\n\t\t\t\treturn this.chainModify([5120, 4096]);\n\t\t\t}\n\t\t},\n\t\tflags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1 },\n\t},\n\n\t// kingbaruk\n\tpeerpressure: {\n\t\tshortDesc: \"All moves used while this Pokemon is on the field consume 4 PP.\",\n\t\tname: \"Peer Pressure\",\n\t\tonStart(pokemon) {\n\t\t\tthis.add('-ability', pokemon, 'Peer Pressure');\n\t\t},\n\t\tonAnyDeductPP(target, source) {\n\t\t\treturn 3;\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Kiwi\n\tsurehitsorcery: {\n\t\tshortDesc: \"No Guard + Prankster + Grassy Surge.\",\n\t\tname: \"Sure Hit Sorcery\",\n\t\tonAnyInvulnerabilityPriority: 1,\n\t\tonAnyInvulnerability(target, source, move) {\n\t\t\tif (move && (source === this.effectState.target || target === this.effectState.target)) return 0;\n\t\t},\n\t\tonAnyAccuracy(accuracy, target, source, move) {\n\t\t\tif (move && (source === this.effectState.target || target === this.effectState.target)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn accuracy;\n\t\t},\n\t\tonModifyPriority(priority, pokemon, target, move) {\n\t\t\tif (move?.category === 'Status') {\n\t\t\t\tmove.pranksterBoosted = true;\n\t\t\t\treturn priority + 1;\n\t\t\t}\n\t\t},\n\t\tonStart(source) {\n\t\t\tthis.field.setTerrain('grassyterrain');\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Klmondo\n\tsuperskilled: {\n\t\tshortDesc: \"Skill Link + Multiscale.\",\n\t\tname: \"Super Skilled\",\n\t\tonModifyMove(move) {\n\t\t\tif (move.multihit && Array.isArray(move.multihit) && move.multihit.length) {\n\t\t\t\tmove.multihit = move.multihit[1];\n\t\t\t}\n\t\t\tif (move.multiaccuracy) {\n\t\t\t\tdelete move.multiaccuracy;\n\t\t\t}\n\t\t},\n\t\tonSourceModifyDamage(damage, source, target, move) {\n\t\t\tif (target.hp >= target.maxhp) {\n\t\t\t\tthis.debug('Multiscale weaken');\n\t\t\t\treturn this.chainModify(0.5);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Kry\n\tflashfreeze: {\n\t\tshortDesc: \"Heatproof + If attacker's used offensive stat has positive stat changes, take 0.75x damage.\",\n\t\tname: \"Flash Freeze\",\n\t\tonSourceModifyAtkPriority: 6,\n\t\tonSourceModifyAtk(atk, attacker, defender, move) {\n\t\t\tif (move.type === 'Fire') {\n\t\t\t\tthis.debug('Heatproof Atk weaken');\n\t\t\t\treturn this.chainModify(0.5);\n\t\t\t}\n\t\t},\n\t\tonSourceModifySpAPriority: 5,\n\t\tonSourceModifySpA(atk, attacker, defender, move) {\n\t\t\tif (move.type === 'Fire') {\n\t\t\t\tthis.debug('Heatproof SpA weaken');\n\t\t\t\treturn this.chainModify(0.5);\n\t\t\t}\n\t\t},\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect && effect.id === 'brn') {\n\t\t\t\treturn damage / 2;\n\t\t\t}\n\t\t},\n\t\tonSourceModifyDamage(damage, source, target, move) {\n\t\t\tif (\n\t\t\t\t(move.category === 'Special' && source.boosts['spa'] > 0) ||\n\t\t\t\t(move.category === 'Physical' && source.boosts['atk'] > 0)\n\t\t\t) {\n\t\t\t\treturn this.chainModify(0.75);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Lasen\n\tidealizedworld: {\n\t\tshortDesc: \"Removes everything on switch-in.\",\n\t\tdesc: \"When this Pokemon switches in, all stat boosts, entry hazards, weathers, terrains, persistent weathers (such as Primordial Sea), and any other field effects (such as Aurora Veil) are removed from all sides of the field.\",\n\t\tname: \"Idealized World\",\n\t\tonStart(pokemon) {\n\t\t\tconst target = pokemon.side.foe;\n\t\t\tthis.add('-ability', pokemon, 'Idealized World');\n\t\t\tconst displayText = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];\n\t\t\tfor (const targetCondition of Object.keys(target.sideConditions)) {\n\t\t\t\tif (target.removeSideCondition(targetCondition) && displayText.includes(targetCondition)) {\n\t\t\t\t\tthis.add('-sideend', target, this.dex.conditions.get(targetCondition).name, '[from] ability: Idealized World', `[of] ${pokemon}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const sideCondition of Object.keys(pokemon.side.sideConditions)) {\n\t\t\t\tif (pokemon.side.removeSideCondition(sideCondition) && displayText.includes(sideCondition)) {\n\t\t\t\t\tthis.add('-sideend', pokemon.side, this.dex.conditions.get(sideCondition).name, '[from] ability: Idealized World', `[of] ${pokemon}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.field.clearTerrain();\n\t\t\tthis.field.clearWeather();\n\t\t\tfor (const pseudoWeather of PSEUDO_WEATHERS) {\n\t\t\t\tthis.field.removePseudoWeather(pseudoWeather);\n\t\t\t}\n\t\t\tthis.add('-clearallboost');\n\t\t\tfor (const poke of this.getAllActive()) {\n\t\t\t\tpoke.clearBoosts();\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Lumari\n\tpyrotechnic: {\n\t\tshortDesc: \"Critical hits are guaranteed when the foe is burned.\",\n\t\tname: \"Pyrotechnic\",\n\t\tonModifyCritRatio(critRatio, source, target) {\n\t\t\tif (target?.status === 'brn') return 5;\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Lunell\n\tlowtidehightide: {\n\t\tshortDesc: \"Switch-in sets Gravity, immune to Water, traps Water-type foes.\",\n\t\tname: \"Low Tide, High Tide\",\n\t\tonStart(source) {\n\t\t\tthis.field.addPseudoWeather('gravity', source);\n\t\t},\n\t\tonTryHit(target, source, move) {\n\t\t\tif (target !== source && move.type === 'Water') {\n\t\t\t\tthis.add('-immune', target, '[from] ability: Low Tide, High Tide');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tonFoeTrapPokemon(pokemon) {\n\t\t\tif (pokemon.hasType('Water') && pokemon.isAdjacent(this.effectState.target)) {\n\t\t\t\tpokemon.tryTrap(true);\n\t\t\t}\n\t\t},\n\t\tonFoeMaybeTrapPokemon(pokemon, source) {\n\t\t\tif (!source) source = this.effectState.target;\n\t\t\tif (!source || !pokemon.isAdjacent(source)) return;\n\t\t\tif (!pokemon.knownType || pokemon.hasType('Water')) {\n\t\t\t\tpokemon.maybeTrapped = true;\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Lyna\n\tmagicaura: {\n\t\tshortDesc: \"Magic Guard + Magic Bounce.\",\n\t\tname: \"Magic Aura\",\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect.effectType !== 'Move') {\n\t\t\t\tif (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tonTryHitPriority: 1,\n\t\tonTryHit(target, source, move) {\n\t\t\tif (target === source || move.hasBounced || !move.flags['reflectable']) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst newMove = this.dex.getActiveMove(move.id);\n\t\t\tnewMove.hasBounced = true;\n\t\t\tnewMove.pranksterBoosted = false;\n\t\t\tthis.actions.useMove(newMove, target, { target: source });\n\t\t\treturn null;\n\t\t},\n\t\tonAllyTryHitSide(target, source, move) {\n\t\t\tif (target.isAlly(source) || move.hasBounced || !move.flags['reflectable']) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst newMove = this.dex.getActiveMove(move.id);\n\t\t\tnewMove.hasBounced = true;\n\t\t\tnewMove.pranksterBoosted = false;\n\t\t\tthis.actions.useMove(newMove, this.effectState.target, { target: source });\n\t\t\treturn null;\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Maia\n\tpowerabuse: {\n\t\tshortDesc: \"Drought + 60% damage reduction + 20% burn after physical move.\",\n\t\tname: \"Power Abuse\",\n\t\tonStart() {\n\t\t\tthis.field.setWeather('sunnyday');\n\t\t},\n\t\tonSourceModifyDamage() {\n\t\t\treturn this.chainModify(0.4);\n\t\t},\n\t\tonDamagingHit(damage, target, source, move) {\n\t\t\tif (move.category === \"Physical\" && this.randomChance(1, 5)) {\n\t\t\t\tsource.trySetStatus('brn', target);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Mathy\n\tdynamictyping: {\n\t\tshortDesc: \"Moves used by all Pokemon are ??? type.\",\n\t\tname: \"Dynamic Typing\",\n\t\tonStart(pokemon) {\n\t\t\tthis.add('-ability', pokemon, \"Dynamic Typing\");\n\t\t},\n\t\tonModifyTypePriority: 2,\n\t\tonAnyModifyType(move, pokemon, target) {\n\t\t\tmove.type = \"???\";\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Merritty\n\tendround: {\n\t\tshortDesc: \"Clears everything.\",\n\t\tdesc: \"When this Pokemon switches in, all weather, terrains, field conditions, entry hazards, stat stage changes, and volatile status conditions are removed from the field.\",\n\t\tname: \"End Round\",\n\t\tonStart(pokemon) {\n\t\t\tif (this.suppressingAbility(pokemon)) return;\n\t\t\tthis.add('-ability', pokemon, 'End Round');\n\t\t\tthis.add('-message', 'A new round is starting! Resetting the field...');\n\t\t\tthis.field.clearWeather();\n\t\t\tthis.field.clearTerrain();\n\t\t\tfor (const pseudoWeather of PSEUDO_WEATHERS) {\n\t\t\t\tthis.field.removePseudoWeather(pseudoWeather);\n\t\t\t}\n\t\t\tfor (const side of this.sides) {\n\t\t\t\tconst remove = [\n\t\t\t\t\t'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge',\n\t\t\t\t\t'bioticorbfoe', 'bioticorbself', 'tailwind', 'luckychant', 'alting',\n\t\t\t\t];\n\t\t\t\tfor (const sideCondition of remove) {\n\t\t\t\t\tif (side.removeSideCondition(sideCondition)) {\n\t\t\t\t\t\tthis.add('-sideend', side, this.dex.conditions.get(sideCondition).name, '[from] ability: End Round', `[of] ${pokemon}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const mon of this.getAllActive()) {\n\t\t\t\tconst volatilesToClear = [\n\t\t\t\t\t'substitute', 'aquaring', 'snack', 'attract', 'confusion', 'bide', 'partiallytrapped', 'perfectmimic',\n\t\t\t\t\t'mustrecharge', 'defensecurl', 'disable', 'focusenergy', 'dragoncheer', 'embargo', 'endure', 'gastroacid',\n\t\t\t\t\t'foresight', 'glaiverush', 'grudge', 'healblock', 'imprison', 'curse', 'leechseed', 'magnetrise', 'minimize',\n\t\t\t\t\t'miracleeye', 'nightmare', 'noretreat', 'octolock', 'lockedmove', 'powder', 'powershift', 'powertrick',\n\t\t\t\t\t'rage', 'ragepowder', 'roost', 'saltcure', 'smackdown', 'snatch', 'sparklingaria', 'spotlight', 'stockpile',\n\t\t\t\t\t'syrupbomb', 'tarshot', 'taunt', 'telekinesis', 'torment', 'uproar', 'yawn', 'flashfire', 'protosynthesis',\n\t\t\t\t\t'quarkdrive', 'slowstart', 'truant', 'unburden', 'metronome', 'beakblast', 'charge', 'echoedvoice', 'encore',\n\t\t\t\t\t'focuspunch', 'furycutter', 'gmaxcannonade', 'gmaxchistrike', 'gmaxvinelash', 'gmaxvolcalith', 'gmaxwildfire',\n\t\t\t\t\t'iceball', 'rollout', 'laserfocus', 'lockon', 'perishsong', 'shelltrap', 'throatchop', 'trapped', 'ultramystik',\n\t\t\t\t\t'choicelock', 'stall', 'catstampofapproval', 'beefed', 'boiled', 'flipped', 'therollingspheal', 'treasurebag',\n\t\t\t\t\t'torisstori', 'anyonecanbekilled', 'sigilsstorm', 'wonderwing', 'riseabove', 'superrollout', 'meatgrinder',\n\t\t\t\t\t'risingsword',\n\t\t\t\t];\n\t\t\t\tfor (const volatile of volatilesToClear) {\n\t\t\t\t\tif (mon.volatiles[volatile]) {\n\t\t\t\t\t\tif (volatile === 'perishsong') {\n\t\t\t\t\t\t\t// will implode the pokemon otherwise\n\t\t\t\t\t\t\tdelete mon.volatiles[volatile];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmon.removeVolatile(volatile);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (volatile === 'flipped') {\n\t\t\t\t\t\t\tchangeSet(this, mon, ssbSets['Clementine']);\n\t\t\t\t\t\t\tthis.add(`c:|${getName('Clementine')}|\u252C\u2500\u2500\u252C\u25E1\uFF89(\u00B0 -\u00B0\uFF89)`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.add('-activate', pokemon, 'ability: End Round');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmon.clearBoosts();\n\t\t\t\tthis.add('-clearboost', mon, '[from] ability: End Round', `[of] ${pokemon}`);\n\t\t\t}\n\t\t},\n\t\tflags: { cantsuppress: 1 },\n\t},\n\n\t// Meteordash\n\ttatsuglare: {\n\t\tshortDesc: \"Fur Coat + All of the user's moves use the Special Attack stat.\",\n\t\tname: \"TatsuGlare\",\n\t\tonModifyMove(move, pokemon, target) {\n\t\t\tif (move.category !== \"Status\") move.overrideOffensiveStat = 'spa';\n\t\t},\n\t\tonModifyDefPriority: 6,\n\t\tonModifyDef(def) {\n\t\t\treturn this.chainModify(2);\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Mex\n\ttimedilation: {\n\t\tshortDesc: \"+10% BP for every 10 turns passed in battle, max 200%.\",\n\t\tname: \"Time Dilation\",\n\t\tonBasePowerPriority: 21,\n\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\tconst turnMultiplier = Math.floor(this.turn / 10);\n\t\t\tlet bpMod = 1 + (0.1 * turnMultiplier);\n\t\t\tif (bpMod > 2) bpMod = 2;\n\t\t\treturn this.chainModify(bpMod);\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Miojo\n\ttherollingspheal: {\n\t\tshortDesc: \"1.5x dmg boost for every repeated move use. Up to 5 uses. +1 Spe when use contact.\",\n\t\tname: \"The Rolling Spheal\",\n\t\tonStart(pokemon) {\n\t\t\tpokemon.addVolatile('therollingspheal');\n\t\t},\n\t\tonSourceHit(target, source, move) {\n\t\t\tif (move.flags['contact'] && move.category === 'Physical') {\n\t\t\t\tthis.add('-activate', source, 'ability: The Rolling Spheal');\n\t\t\t\tthis.boost({ spe: 1 }, source, source, move);\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.effectState.lastMove = '';\n\t\t\t\tthis.effectState.numConsecutive = 0;\n\t\t\t},\n\t\t\tonTryMovePriority: -2,\n\t\t\tonTryMove(pokemon, target, move) {\n\t\t\t\tif (!pokemon.hasAbility('therollingspheal')) {\n\t\t\t\t\tpokemon.removeVolatile('therollingspheal');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.effectState.lastMove === move.id && pokemon.moveLastTurnResult) {\n\t\t\t\t\tthis.effectState.numConsecutive++;\n\t\t\t\t} else if (pokemon.volatiles['twoturnmove']) {\n\t\t\t\t\tif (this.effectState.lastMove !== move.id) {\n\t\t\t\t\t\tthis.effectState.numConsecutive = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.effectState.numConsecutive++;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.effectState.numConsecutive = 0;\n\t\t\t\t}\n\t\t\t\tthis.effectState.lastMove = move.id;\n\t\t\t},\n\t\t\tonModifyDamage(damage, source, target, move) {\n\t\t\t\tif (this.effectState.numConsecutive > 0) {\n\t\t\t\t\tthis.debug(`Current Metronome boost: 6144/4096`);\n\t\t\t\t\treturn this.chainModify([6144, 4096]);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonAfterMove(source, target, move) {\n\t\t\t\tif (this.effectState.numConsecutive > 5) {\n\t\t\t\t\tthis.effectState.numConsecutive = 0;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Monkey\n\tharambehit: {\n\t\tshortDesc: \"Unseen Fist + Punch moves have 1.5x power.\",\n\t\tname: \"Harambe Hit\",\n\t\tonModifyMove(move) {\n\t\t\tif (move.flags['contact']) delete move.flags['protect'];\n\t\t},\n\t\tonBasePowerPriority: 23,\n\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\tif (move.flags['punch']) {\n\t\t\t\tthis.debug('Harambe Hit boost');\n\t\t\t\treturn this.chainModify([6144, 4096]);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// MyPearl\n\teoncall: {\n\t\tshortDesc: \"Changes into Latios after status move, Latias after special move.\",\n\t\tdesc: \"If this Pokemon is a Latios, it changes into Latias after using a status move. If this Pokemon is a Latias, it changes into Latios after using a special attack.\",\n\t\tname: \"Eon Call\",\n\t\tonAfterMove(source, target, move) {\n\t\t\tif (move.category === 'Status' && source.species.baseSpecies === 'Latias') {\n\t\t\t\tchangeSet(this, source, ssbSets['MyPearl'], true);\n\t\t\t} else if (move.category === 'Special' && source.species.baseSpecies === 'Latios') {\n\t\t\t\tchangeSet(this, source, ssbSets['MyPearl-Latias'], true);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Neko\n\tweatherproof: {\n\t\tshortDesc: \"Water-/Fire-type moves against this Pokemon deal damage with a halved offensive stat.\",\n\t\tname: \"Weatherproof\",\n\t\tonSourceModifyAtkPriority: 6,\n\t\tonSourceModifyAtk(atk, attacker, defender, move) {\n\t\t\tif (move.type === 'Water' || move.type === 'Fire') {\n\t\t\t\tthis.debug('Weatherproof weaken');\n\t\t\t\treturn this.chainModify(0.5);\n\t\t\t}\n\t\t},\n\t\tonSourceModifySpAPriority: 5,\n\t\tonSourceModifySpA(atk, attacker, defender, move) {\n\t\t\tif (move.type === 'Water' || move.type === 'Fire') {\n\t\t\t\tthis.debug('Weatherproof weaken');\n\t\t\t\treturn this.chainModify(0.5);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Ney\n\tpranksterplus: {\n\t\tshortDesc: \"This Pokemon's Status moves have priority raised by 1. Dark types are not immune.\",\n\t\tname: \"Prankster Plus\",\n\t\tonModifyPriority(priority, pokemon, target, move) {\n\t\t\tif (move?.category === 'Status') {\n\t\t\t\treturn priority + 1;\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Notater517\n\tventcrosser: {\n\t\tshortDesc: \"Uses Baton Pass after every move.\",\n\t\tname: \"Vent Crosser\",\n\t\tonAfterMove(source, target, move) {\n\t\t\tthis.actions.useMove('Baton Pass', source);\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// nya\n\tadorablegrace: {\n\t\tshortDesc: \"This Pokemon's secondary effects and certain items have their activation chance doubled.\",\n\t\tdesc: \"This Pokemon's secondary effects of attacks, as well as the effects of chance based items like Focus Band and King's Rock, have their activation chance doubled.\",\n\t\tname: \"Adorable Grace\",\n\t\tonModifyMovePriority: -2,\n\t\tonModifyMove(move) {\n\t\t\tif (move.secondaries) {\n\t\t\t\tthis.debug('doubling secondary chance');\n\t\t\t\tfor (const secondary of move.secondaries) {\n\t\t\t\t\tif (secondary.chance) secondary.chance *= 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (move.self?.chance) move.self.chance *= 2;\n\t\t},\n\t\t// Item chances modified in items.js\n\t},\n\n\t// pants\n\tdrifting: {\n\t\tshortDesc: \"Wandering Spirit + Stakeout.\",\n\t\tname: \"Drifting\",\n\t\tonDamagingHit(damage, target, source, move) {\n\t\t\tif (source.getAbility().flags['failskillswap'] || target.volatiles['dynamax']) return;\n\n\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\n\t\t\t\tconst targetCanBeSet = this.runEvent('SetAbility', target, source, this.effect, source.ability);\n\t\t\t\tif (!targetCanBeSet) return targetCanBeSet;\n\t\t\t\tconst sourceAbility = source.setAbility('drifting', target);\n\t\t\t\tif (!sourceAbility) return;\n\t\t\t\tif (target.isAlly(source)) {\n\t\t\t\t\tthis.add('-activate', target, 'Skill Swap', '', '', `[of] ${source}`);\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'ability: Drifting', this.dex.abilities.get(sourceAbility).name, 'Drifting', `[of] ${source}`);\n\t\t\t\t}\n\t\t\t\ttarget.setAbility(sourceAbility);\n\t\t\t}\n\t\t},\n\t\tonModifyAtkPriority: 5,\n\t\tonModifyAtk(atk, attacker, defender) {\n\t\t\tif (defender && !defender.activeTurns) {\n\t\t\t\tthis.debug('Stakeout boost');\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tonModifySpAPriority: 5,\n\t\tonModifySpA(atk, attacker, defender) {\n\t\t\tif (defender && !defender.activeTurns) {\n\t\t\t\tthis.debug('Stakeout boost');\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// PartMan\n\tctiershitposter: {\n\t\tshortDesc: \"-1 Atk/SpA, +1 Def/SpD. +1 Atk/SpA/Spe, -1 Def/SpD, Mold Breaker if 420+ dmg taken.\",\n\t\tdesc: \"When this Pokemon switches in, its Defense and Special Defense are boosted by 1 stage and its Attack and Special Attack are lowered by 1 stage. Once this Pokemon has taken total damage throughout the battle equal to or greater than 420 HP, it instead ignores the Abilities of opposing Pokemon when attacking and its existing stat stage changes are cleared. After this and whenever it gets sent out from this point onwards, this Pokemon boosts its Attack, Special Attack, and Speed by 1 stage, and lowers its Defense and Special Defense by 1 stage.\",\n\t\tname: \"C- Tier Shitposter\",\n\t\tonDamage(damage, target, source, effect) {\n\t\t\ttarget.m.damageTaken ??= 0;\n\t\t\ttarget.m.damageTaken += damage;\n\t\t\tif (target.set && !target.set.shiny) {\n\t\t\t\tif (target.m.damageTaken >= 420) {\n\t\t\t\t\ttarget.set.shiny = true;\n\t\t\t\t\tif (!target.hp) {\n\t\t\t\t\t\treturn this.add(`c:|${getName('PartMan')}|MWAHAHA NOW YOU - oh I'm dead`);\n\t\t\t\t\t}\n\t\t\t\t\tthis.add(`c:|${getName('PartMan')}|That's it. Get ready to be rapid-fire hugged.`);\n\t\t\t\t\ttarget.clearBoosts();\n\t\t\t\t\tthis.add('-clearboost', target);\n\t\t\t\t\tthis.boost({ atk: 1, def: -1, spa: 1, spd: -1, spe: 1 });\n\t\t\t\t\tconst details = target.getUpdatedDetails();\n\t\t\t\t\ttarget.details = details;\n\t\t\t\t\tthis.add('replace', target, details);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonModifyMove(move, pokemon) {\n\t\t\tif (pokemon.set.shiny) move.ignoreAbility = true;\n\t\t},\n\t\tonStart(pokemon) {\n\t\t\tif (!pokemon.set.shiny) {\n\t\t\t\tthis.boost({ atk: -1, def: 1, spa: -1, spd: 1 });\n\t\t\t} else {\n\t\t\t\tthis.boost({ atk: 1, def: -1, spa: 1, spd: -1, spe: 1 });\n\t\t\t}\n\t\t},\n\t},\n\n\t// Pastor Gigas\n\tgodsmercy: {\n\t\tshortDesc: \"Summons Grassy Terrain and cures the team's status conditions on switch-in.\",\n\t\tname: \"God's Mercy\",\n\t\tonStart(source) {\n\t\t\tthis.field.setTerrain('grassyterrain');\n\t\t\tconst allies = [...source.side.pokemon, ...source.side.allySide?.pokemon || []];\n\t\t\tfor (const ally of allies) {\n\t\t\t\tif (ally !== source && ally.hasAbility('sapsipper')) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tally.cureStatus();\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// phoopes\n\tididitagain: {\n\t\tshortDesc: \"Bypasses Sleep Clause Mod.\",\n\t\tname: \"I Did It Again\",\n\t\tflags: {},\n\t\t// implemented in rulesets.ts\n\t},\n\n\t// Princess Autumn\n\tlasthymn: {\n\t\tshortDesc: \"Weakens incoming attacks by 10% for each Pokemon fainted.\",\n\t\tname: \"Last Hymn\",\n\t\tonStart(pokemon) {\n\t\t\tif (pokemon.side.totalFainted) {\n\t\t\t\tthis.add('-activate', pokemon, 'ability: Last Hymn');\n\t\t\t\tconst fallen = Math.min(pokemon.side.totalFainted, 5);\n\t\t\t\tthis.add('-start', pokemon, `fallen${fallen}`, '[silent]');\n\t\t\t\tthis.effectState.fallen = fallen;\n\t\t\t}\n\t\t},\n\t\tonEnd(pokemon) {\n\t\t\tthis.add('-end', pokemon, `fallen${this.effectState.fallen}`, '[silent]');\n\t\t},\n\t\tonBasePowerPriority: 21,\n\t\tonFoeBasePower(basePower, attacker, defender, move) {\n\t\t\tif (this.effectState.fallen) {\n\t\t\t\treturn this.chainModify([10, (10 + this.effectState.fallen)]);\n\t\t\t}\n\t\t},\n\t},\n\n\t// Pulse_kS\n\tpulseluck: {\n\t\tshortDesc: \"Mega Launcher + Super Luck.\",\n\t\tname: \"Pulse Luck\",\n\t\tonBasePowerPriority: 19,\n\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\tif (move.flags['pulse']) {\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tonModifyCritRatio(critRatio) {\n\t\t\treturn critRatio + 1;\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// PYRO\n\thardcorehustle: {\n\t\tshortDesc: \"Moves have 15% more power and -5% Acc for each fainted ally, up to 5 allies.\",\n\t\tname: \"Hardcore Hustle\",\n\t\tonStart(pokemon) {\n\t\t\tif (pokemon.side.totalFainted) {\n\t\t\t\tthis.add('-activate', pokemon, 'ability: Hardcore Hustle');\n\t\t\t\tconst fallen = Math.min(pokemon.side.totalFainted, 5);\n\t\t\t\tthis.add('-start', pokemon, `fallen${fallen}`, '[silent]');\n\t\t\t\tthis.effectState.fallen = fallen;\n\t\t\t}\n\t\t},\n\t\tonEnd(pokemon) {\n\t\t\tthis.add('-end', pokemon, `fallen${this.effectState.fallen}`, '[silent]');\n\t\t},\n\t\tonBasePowerPriority: 21,\n\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\tif (this.effectState.fallen) {\n\t\t\t\tconst powMod = [1, 1.15, 1.3, 1.45, 1.6, 1.75];\n\t\t\t\tthis.debug(`Hardcore Hustle boost: ${powMod[this.effectState.fallen]}`);\n\t\t\t\treturn this.chainModify(powMod[this.effectState.fallen]);\n\t\t\t}\n\t\t},\n\t\tonSourceModifyAccuracyPriority: -1,\n\t\tonSourceModifyAccuracy(accuracy, target, source, move) {\n\t\t\tif (this.effectState.fallen) {\n\t\t\t\tconst accMod = [1, 0.95, 0.90, 0.85, 0.80, 0.75];\n\t\t\t\tthis.debug(`Hardcore Hustle debuff: ${accMod[this.effectState.fallen]}`);\n\t\t\t\treturn this.chainModify(accMod[this.effectState.fallen]);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Quite Quiet\n\tfancyscarf: {\n\t\tshortDesc: \"Shield Dust + Magic Guard\",\n\t\tname: \"Fancy Scarf\",\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect.effectType !== 'Move') {\n\t\t\t\tif (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tonModifySecondaries(secondaries) {\n\t\t\tthis.debug('Fancy Scarf prevent secondary');\n\t\t\treturn secondaries.filter(effect => !!(effect.self || effect.dustproof));\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// quziel\n\thighperformancecomputing: {\n\t\tshortDesc: \"Becomes a random typing at the beginning of each turn.\",\n\t\tname: \"High Performance Computing\",\n\t\tflags: {},\n\t\tonResidual(source) {\n\t\t\tconst type = this.sample(this.dex.types.names().filter(i => i !== 'Stellar'));\n\t\t\tif (source.setType(type)) {\n\t\t\t\tthis.add('-start', source, 'typechange', type, '[from] ability: High Performance Computing');\n\t\t\t}\n\t\t},\n\t},\n\n\t// R8\n\tantipelau: {\n\t\tshortDesc: \"Boosts Sp. Atk by 2 and sets a 25% Wish upon switch-in.\",\n\t\tname: \"Anti-Pelau\",\n\t\tonStart(target) {\n\t\t\tthis.boost({ spa: 2 }, target);\n\t\t\tconst wish = this.dex.getActiveMove('wish');\n\t\t\twish.condition = {\n\t\t\t\tduration: 2,\n\t\t\t\tonStart(pokemon, source) {\n\t\t\t\t\tthis.effectState.hp = source.maxhp / 4;\n\t\t\t\t},\n\t\t\t\tonResidualOrder: 4,\n\t\t\t\tonEnd(pokemon) {\n\t\t\t\t\tif (pokemon && !pokemon.fainted) {\n\t\t\t\t\t\tconst damage = this.heal(this.effectState.hp, pokemon, pokemon);\n\t\t\t\t\t\tif (damage) {\n\t\t\t\t\t\t\tthis.add('-heal', pokemon, pokemon.getHealth, '[from] move: Wish', '[wisher] ' + this.effectState.source.name);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t\tthis.actions.useMove(wish, target);\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Rainshaft\n\trainysaura: {\n\t\tshortDesc: \"On switch-in, this Pokemon summons rain. Boosts all Psychic-type damage by 33%.\",\n\t\tname: \"Rainy's Aura\",\n\t\tonStart(source) {\n\t\t\tif (this.suppressingAbility(source)) return;\n\t\t\tif (source.species.id === 'kyogre' && source.item === 'blueorb') return;\n\t\t\tthis.field.setWeather('raindance');\n\t\t},\n\t\tonAnyBasePowerPriority: 20,\n\t\tonAnyBasePower(basePower, source, target, move) {\n\t\t\tif (target === source || move.category === 'Status' || move.type !== 'Psychic') return;\n\t\t\tif (!move.auraBooster?.hasAbility('Rainy\\'s Aura')) move.auraBooster = this.effectState.target;\n\t\t\tif (move.auraBooster !== this.effectState.target) return;\n\t\t\treturn this.chainModify([move.hasAuraBreak ? 3072 : 5448, 4096]);\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Ransei\n\tultramystik: {\n\t\tshortDesc: \"Stats 1.3x + Magic Guard + Leftovers until hit super effectively.\",\n\t\tdesc: \"This Pokemon can only be damaged by direct attacks. At the end of each turn, this Pokemon restores 1/16 of its maximum HP. This Pokemon's Attack, Defense, Special Attack, Special Defense, and Speed are boosted by 1.3x. This ability will be replaced with Healer if it is hit with a super effective attack.\",\n\t\tname: \"Ultra Mystik\",\n\t\tonStart(target) {\n\t\t\tif (!this.effectState.superHit) {\n\t\t\t\ttarget.addVolatile('ultramystik');\n\t\t\t}\n\t\t},\n\t\tonEnd(pokemon) {\n\t\t\tdelete pokemon.volatiles['ultramystik'];\n\t\t\tthis.add('-end', pokemon, 'Ultra Mystik', '[silent]');\n\t\t},\n\t\tonSourceModifyDamage(damage, source, target, move) {\n\t\t\tif (target.getMoveHitData(move).typeMod > 0) {\n\t\t\t\tthis.effectState.superHit = true;\n\t\t\t\ttarget.removeVolatile('ultramystik');\n\t\t\t\ttarget.setAbility('Healer', null, true);\n\t\t\t\ttarget.baseAbility = target.ability;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tnoCopy: true,\n\t\t\tonStart(pokemon, source, effect) {\n\t\t\t\tthis.add('-activate', pokemon, 'ability: Ultra Mystik');\n\t\t\t\tthis.add('-start', pokemon, 'ultramystik');\n\t\t\t},\n\t\t\tonModifyAtkPriority: 5,\n\t\t\tonModifyAtk(atk, pokemon) {\n\t\t\t\tif (pokemon.ignoringAbility()) return;\n\t\t\t\treturn this.chainModify(1.3);\n\t\t\t},\n\t\t\tonModifyDefPriority: 6,\n\t\t\tonModifyDef(def, pokemon) {\n\t\t\t\tif (pokemon.ignoringAbility()) return;\n\t\t\t\treturn this.chainModify(1.3);\n\t\t\t},\n\t\t\tonModifySpAPriority: 5,\n\t\t\tonModifySpA(spa, pokemon) {\n\t\t\t\tif (pokemon.ignoringAbility()) return;\n\t\t\t\treturn this.chainModify(1.3);\n\t\t\t},\n\t\t\tonModifySpDPriority: 6,\n\t\t\tonModifySpD(spd, pokemon) {\n\t\t\t\tif (pokemon.ignoringAbility()) return;\n\t\t\t\treturn this.chainModify(1.3);\n\t\t\t},\n\t\t\tonModifySpe(spe, pokemon) {\n\t\t\t\tif (pokemon.ignoringAbility()) return;\n\t\t\t\treturn this.chainModify(1.3);\n\t\t\t},\n\t\t\tonEnd(pokemon) {\n\t\t\t\tthis.add('-end', pokemon, 'Ultra Mystik');\n\t\t\t},\n\t\t},\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect.effectType !== 'Move') {\n\t\t\t\tif (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tonResidual(pokemon) {\n\t\t\tthis.heal(pokemon.baseMaxhp / 16, pokemon, pokemon, pokemon.getAbility());\n\t\t},\n\t},\n\n\t// ReturnToMonkey\n\tmonkeseemonkedo: {\n\t\tshortDesc: \"Boosts Atk or SpA by 1 based on foe's defenses, then copies foe's Ability.\",\n\t\tname: \"Monke See Monke Do\",\n\t\tonStart(pokemon) {\n\t\t\tlet totaldef = 0;\n\t\t\tlet totalspd = 0;\n\t\t\tfor (const target of pokemon.foes()) {\n\t\t\t\ttotaldef += target.getStat('def', false, true);\n\t\t\t\ttotalspd += target.getStat('spd', false, true);\n\t\t\t}\n\t\t\tif (totaldef && totaldef >= totalspd) {\n\t\t\t\tthis.boost({ spa: 1 });\n\t\t\t} else if (totalspd) {\n\t\t\t\tthis.boost({ atk: 1 });\n\t\t\t}\n\n\t\t\t// n.b. only affects Hackmons\n\t\t\t// interaction with No Ability is complicated: https://www.smogon.com/forums/threads/pokemon-sun-moon-battle-mechanics-research.3586701/page-76#post-7790209\n\t\t\tif (pokemon.adjacentFoes().some(foeActive => foeActive.ability === 'noability')) {\n\t\t\t\tthis.effectState.gaveUp = true;\n\t\t\t}\n\t\t\t// interaction with Ability Shield is similar to No Ability\n\t\t\tif (pokemon.hasItem('Ability Shield')) {\n\t\t\t\tthis.add('-block', pokemon, 'item: Ability Shield');\n\t\t\t\tthis.effectState.gaveUp = true;\n\t\t\t}\n\t\t},\n\t\tonUpdate(pokemon) {\n\t\t\tif (!pokemon.isStarted || this.effectState.gaveUp) return;\n\n\t\t\tconst possibleTargets = pokemon.adjacentFoes().filter(\n\t\t\t\ttarget => !target.getAbility().flags['notrace'] && target.ability !== 'noability'\n\t\t\t);\n\t\t\tif (!possibleTargets.length) return;\n\n\t\t\tconst target = this.sample(possibleTargets);\n\t\t\tconst ability = target.getAbility();\n\t\t\tif (pokemon.setAbility(ability)) {\n\t\t\t\tthis.add('-ability', pokemon, ability, '[from] ability: Monke See Monke Do', `[of] ${target}`);\n\t\t\t}\n\t\t},\n\t\tflags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1 },\n\t},\n\n\t// Rio Vidal\n\tbuiltdifferent: {\n\t\tshortDesc: \"Stamina + Normal-type moves get +1 priority.\",\n\t\tname: \"Built Different\",\n\t\tonDamagingHit(damage, target, source, effect) {\n\t\t\tthis.boost({ def: 1 });\n\t\t},\n\t\tonModifyPriority(priority, pokemon, target, move) {\n\t\t\tif (move?.type === 'Normal') return priority + 1;\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Rissoux\n\thardheaded: {\n\t\tshortDesc: \"Reckless + Rock Head.\",\n\t\tname: \"Hard Headed\",\n\t\tonBasePowerPriority: 23,\n\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\tif (move.recoil || move.hasCrashDamage) {\n\t\t\t\tthis.debug('Reckless boost');\n\t\t\t\treturn this.chainModify([4915, 4096]);\n\t\t\t}\n\t\t},\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect.id === 'recoil') {\n\t\t\t\tif (!this.activeMove) throw new Error(\"Battle.activeMove is null\");\n\t\t\t\tif (this.activeMove.id !== 'struggle') return null;\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// RSB\n\thotpursuit: {\n\t\tshortDesc: \"This Pokemon's damaging moves have the Pursuit effect.\",\n\t\tname: \"Hot Pursuit\",\n\t\tonBeforeTurn(pokemon) {\n\t\t\tfor (const side of this.sides) {\n\t\t\t\tif (side.hasAlly(pokemon)) continue;\n\t\t\t\tside.addSideCondition('hotpursuit', pokemon);\n\t\t\t\tconst data = side.getSideConditionData('hotpursuit');\n\t\t\t\tif (!data.sources) {\n\t\t\t\t\tdata.sources = [];\n\t\t\t\t}\n\t\t\t\tdata.sources.push(pokemon);\n\t\t\t}\n\t\t},\n\t\tonBasePower(relayVar, source, target, move) {\n\t\t\t// You can't get here unless the pursuit succeeds\n\t\t\tif (target.beingCalledBack || target.switchFlag) {\n\t\t\t\tthis.debug('Pursuit damage boost');\n\t\t\t\treturn move.basePower * 2;\n\t\t\t}\n\t\t\treturn move.basePower;\n\t\t},\n\t\tonModifyMove(move, source, target) {\n\t\t\tif (target?.beingCalledBack || target?.switchFlag) move.accuracy = true;\n\t\t},\n\t\tonTryHit(source, target) {\n\t\t\ttarget.side.removeSideCondition('hotpursuit');\n\t\t},\n\t\tcondition: {\n\t\t\tduration: 1,\n\t\t\tonBeforeSwitchOut(pokemon) {\n\t\t\t\tconst move = this.queue.willMove(pokemon.foes()[0]);\n\t\t\t\tconst moveName = move && move.moveid ? move.moveid.toString() : \"\";\n\t\t\t\tthis.debug('Pursuit start');\n\t\t\t\tlet alreadyAdded = false;\n\t\t\t\tpokemon.removeVolatile('destinybond');\n\t\t\t\tfor (const source of this.effectState.sources) {\n\t\t\t\t\tif (!source.isAdjacent(pokemon) || !this.queue.cancelMove(source) || !source.hp) continue;\n\t\t\t\t\tif (!alreadyAdded) {\n\t\t\t\t\t\tthis.add('-activate', pokemon.foes()[0], 'ability: Hot Pursuit');\n\t\t\t\t\t\talreadyAdded = true;\n\t\t\t\t\t}\n\t\t\t\t\t// Run through each action in queue to check if the Pursuit user is supposed to Mega Evolve this turn.\n\t\t\t\t\t// If it is, then Mega Evolve before moving.\n\t\t\t\t\tif (source.canMegaEvo || source.canUltraBurst) {\n\t\t\t\t\t\tfor (const [actionIndex, action] of this.queue.entries()) {\n\t\t\t\t\t\t\tif (action.pokemon === source && action.choice === 'megaEvo') {\n\t\t\t\t\t\t\t\tthis.actions.runMegaEvo(source);\n\t\t\t\t\t\t\t\tthis.queue.list.splice(actionIndex, 1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.actions.runMove(moveName, source, source.getLocOf(pokemon));\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Rumia\n\tyoukaiofthedusk: {\n\t\tshortDesc: \"This Pokemon's Defense is doubled and its status moves gain +1 priority.\",\n\t\tname: \"Youkai of the Dusk\",\n\t\tonModifyDefPriority: 6,\n\t\tonModifyDef(def) {\n\t\t\treturn this.chainModify(2);\n\t\t},\n\t\tonModifyPriority(priority, pokemon, target, move) {\n\t\t\tif (move?.category === 'Status') {\n\t\t\t\tmove.pranksterBoosted = true;\n\t\t\t\treturn priority + 1;\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// SexyMalasada\n\tancestryritual: {\n\t\tshortDesc: \"Recoil heals. While below 50% HP, changes to Typhlosion-Hisui.\",\n\t\tdesc: \"Moves that would deal recoil or crash damage, aside from Struggle, heal this Pokemon for the corresponding amount instead. If this Pokemon is a Typhlosion, it changes to Typhlosion-Hisui if it has 1/2 or less of its maximum HP at the end of a turn. If Typhlosion-Hisui's HP is above 1/2 of its maximum HP at the end of a turn, it changes back to Typhlosion.\",\n\t\tname: \"Ancestry Ritual\",\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect.id === 'recoil') {\n\t\t\t\tif (!this.activeMove) throw new Error(\"Battle.activeMove is null\");\n\t\t\t\tif (this.activeMove.id !== 'struggle') {\n\t\t\t\t\tthis.heal(damage);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonResidualOrder: 20,\n\t\tonResidual(pokemon) {\n\t\t\tif (pokemon.baseSpecies.baseSpecies !== 'Typhlosion' || pokemon.transformed) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (pokemon.hp <= pokemon.maxhp / 2 && pokemon.species.id !== 'typhlosionhisui') {\n\t\t\t\tpokemon.formeChange('Typhlosion-Hisui');\n\t\t\t} else if (pokemon.hp > pokemon.maxhp / 2 && pokemon.species.id === 'typhlosionhisui') {\n\t\t\t\tpokemon.formeChange('Typhlosion');\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Siegfried\n\tmagicalmysterycharge: {\n\t\tshortDesc: \"Summons Electric Terrain upon switch-in, +1 boost to Sp. Def during Electric Terrain.\",\n\t\tname: \"Magical Mystery Charge\",\n\t\tonStart(source) {\n\t\t\tthis.field.setTerrain('electricterrain');\n\t\t},\n\t\tonModifySpDPriority: 5,\n\t\tonModifySpD(spd, pokemon) {\n\t\t\tif (this.field.isTerrain('electricterrain')) {\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Sificon\n\tperfectlyimperfect: {\n\t\tdesc: \"If a Pokemon uses a Fire- or Ice-type attack against this Pokemon, that Pokemon's offensive stat is halved when calculating the damage to this Pokemon.\",\n\t\tshortDesc: \"Fire-/Ice-type moves against this Pokemon deal damage with a halved offensive stat.\",\n\t\tname: \"Perfectly Imperfect\",\n\t\tonSourceModifyAtkPriority: 6,\n\t\tonSourceModifyAtk(atk, attacker, defender, move) {\n\t\t\tif (move.type === 'Ice' || move.type === 'Fire') {\n\t\t\t\tthis.debug('Perfectly Imperfect weaken');\n\t\t\t\treturn this.chainModify(0.5);\n\t\t\t}\n\t\t},\n\t\tonSourceModifySpAPriority: 5,\n\t\tonSourceModifySpA(atk, attacker, defender, move) {\n\t\t\tif (move.type === 'Ice' || move.type === 'Fire') {\n\t\t\t\tthis.debug('Perfectly Imperfect weaken');\n\t\t\t\treturn this.chainModify(0.5);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// skies\n\tspikesofwrath: {\n\t\tshortDesc: \"Cheek Pouch + sets Spikes and Toxic Spikes upon getting KOed.\",\n\t\tname: \"Spikes of Wrath\",\n\t\tonDamagingHit(damage, target, source, effect) {\n\t\t\tif (!target.hp) {\n\t\t\t\tconst side = source.isAlly(target) ? source.side.foe : source.side;\n\t\t\t\tconst spikes = side.sideConditions['spikes'];\n\t\t\t\tconst toxicSpikes = side.sideConditions['toxicspikes'];\n\t\t\t\tif (!spikes || spikes.layers < 3) {\n\t\t\t\t\tthis.add('-activate', target, 'ability: Spikes of Wrath');\n\t\t\t\t\tside.addSideCondition('spikes', target);\n\t\t\t\t}\n\t\t\t\tif (!toxicSpikes || toxicSpikes.layers < 2) {\n\t\t\t\t\tthis.add('-activate', target, 'ability: Spikes of Wrath');\n\t\t\t\t\tside.addSideCondition('toxicspikes', target);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonEatItem(item, pokemon) {\n\t\t\tthis.heal(pokemon.baseMaxhp / 3);\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Soft Flex\n\tadaptiveengineering: {\n\t\tshortDesc: \"Every turn, raises a random stat by 1 stage if the foe has more raised stats.\",\n\t\tname: \"Adaptive Engineering\",\n\t\tonResidual(source) {\n\t\t\tif (source?.foes()?.[0] === undefined) return;\n\t\t\tif (source.positiveBoosts() < source.foes()[0].positiveBoosts()) {\n\t\t\t\tconst stats: BoostID[] = [];\n\t\t\t\tlet stat: BoostID;\n\t\t\t\tfor (stat in source.boosts) {\n\t\t\t\t\tif (stat === 'accuracy' || stat === 'evasion') continue;\n\t\t\t\t\tif (source.boosts[stat] < 6) {\n\t\t\t\t\t\tstats.push(stat);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (stats.length) {\n\t\t\t\t\tconst randomStat = this.sample(stats);\n\t\t\t\t\tthis.boost({ [randomStat]: 1 }, source, source);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Solaros & Lunaris\n\tridethesun: {\n\t\tshortDesc: \"Drought + Spe 1.5x in sun.\",\n\t\tdesc: \"On switch-in, this Pokemon summons Sunny Day. If Sunny Day is active, this Pokemon's Speed is 1.5x.\",\n\t\tname: \"Ride the Sun!\",\n\t\tonStart(source) {\n\t\t\tif (source.species.id === 'groudon' && source.item === 'redorb') return;\n\t\t\tthis.field.setWeather('sunnyday');\n\t\t},\n\t\tonModifySpe(spe, pokemon) {\n\t\t\tif (['sunnyday', 'desolateland'].includes(pokemon.effectiveWeather())) {\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// spoo\n\ticanheartheheartbeatingasone: {\n\t\tshortDesc: \"Pixilate + Sharpness. -1 Atk upon KOing an opposing Pokemon.\",\n\t\tname: \"I Can Hear The Heart Beating As One\",\n\t\tonModifyTypePriority: -1,\n\t\tonModifyType(move, pokemon) {\n\t\t\tconst noModifyType = [\n\t\t\t\t'judgment', 'multiattack', 'naturalgift', 'revelationdance', 'technoblast', 'terrainpulse', 'weatherball',\n\t\t\t];\n\t\t\tif (move.type === 'Normal' && !noModifyType.includes(move.id) &&\n\t\t\t\t!(move.isZ && move.category !== 'Status') && !(move.name === 'Tera Blast' && pokemon.terastallized)) {\n\t\t\t\tmove.type = 'Fairy';\n\t\t\t\tmove.typeChangerBoosted = this.effect;\n\t\t\t}\n\t\t},\n\t\tonBasePowerPriority: 23,\n\t\tonBasePower(basePower, pokemon, target, move) {\n\t\t\tif (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]);\n\t\t\tif (move.flags['slicing']) {\n\t\t\t\tthis.debug('Sharpness boost');\n\t\t\t\treturn this.chainModify(1.5);\n\t\t\t}\n\t\t},\n\t\tonSourceAfterFaint(length, target, source, effect) {\n\t\t\tif (effect && effect.effectType === 'Move') {\n\t\t\t\tthis.boost({ atk: -length }, source);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Steorra\n\tghostlyhallow: {\n\t\tshortDesc: \"This Pok\u00E9mon can hit Normal types with Ghost-type moves.\",\n\t\tname: \"Ghostly Hallow\",\n\t\tonModifyMovePriority: -5,\n\t\tonModifyMove(move) {\n\t\t\tif (!move.ignoreImmunity) move.ignoreImmunity = {};\n\t\t\tif (move.ignoreImmunity !== true) {\n\t\t\t\tmove.ignoreImmunity['Ghost'] = true;\n\t\t\t}\n\t\t},\n\t},\n\n\t// Struchni\n\toveraskedclause: {\n\t\tshortDesc: \"Moves used by opposing Pokemon on the previous turn will always fail.\",\n\t\tname: \"Overasked Clause\",\n\t\tonFoeBeforeMove(target, source, move) {\n\t\t\tif (target.lastMove && target.lastMove.id !== 'struggle') {\n\t\t\t\tif (move.id === target.lastMove.id) {\n\t\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\t\tthis.add('cant', target, 'ability: Overasked Clause', move, `[of] ${source}`);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\n\t// Sulo\n\tprotectionofthegelatin: {\n\t\tshortDesc: \"Magic Guard + Stamina\",\n\t\tname: \"Protection of the Gelatin\",\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect.effectType !== 'Move') {\n\t\t\t\tif (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tonDamagingHit(damage, target, source, effect) {\n\t\t\tthis.boost({ def: 1 });\n\t\t},\n\t},\n\n\t// Swiffix\n\tstinky: {\n\t\tdesc: \"10% chance to either poison or paralyze the target on hit.\",\n\t\tname: \"Stinky\",\n\t\tonModifyMovePriority: -1,\n\t\tonModifyMove(move) {\n\t\t\tif (move.category !== \"Status\") {\n\t\t\t\tthis.debug('Adding Stinky psn/par');\n\t\t\t\tif (!move.secondaries) move.secondaries = [];\n\t\t\t\tmove.secondaries.push({\n\t\t\t\t\tchance: 10,\n\t\t\t\t\tonHit(target, source) {\n\t\t\t\t\t\tconst result = this.random(2);\n\t\t\t\t\t\tif (result === 0) {\n\t\t\t\t\t\t\ttarget.trySetStatus('par', source);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttarget.trySetStatus('psn', source);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Tenshi\n\tsandsleuth: {\n\t\tdesc: \"Sets Gravity and identifies foes on switch-in. Priority immune from identified foes.\",\n\t\tname: \"Sand Sleuth\",\n\t\tonStart(target) {\n\t\t\tthis.field.addPseudoWeather('gravity', target);\n\t\t\tfor (const opponent of target.adjacentFoes()) {\n\t\t\t\tif (!opponent.volatiles['foresight']) {\n\t\t\t\t\topponent.addVolatile('foresight');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonFoeTryMove(target, source, move) {\n\t\t\tif (target.volatiles['foresight']) {\n\t\t\t\tconst targetAllExceptions = ['perishsong', 'flowershield', 'rototiller'];\n\t\t\t\tif (move.target === 'foeSide' || (move.target === 'all' && !targetAllExceptions.includes(move.id))) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst dazzlingHolder = this.effectState.target;\n\t\t\t\tif ((source.isAlly(dazzlingHolder) || move.target === 'all') && move.priority > 0.1) {\n\t\t\t\t\tthis.attrLastMove('[still]');\n\t\t\t\t\tthis.add('cant', target, 'ability: Sand Sleuth', move, `[of] ${source}`);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Tico\n\teternalgenerator: {\n\t\tshortDesc: \"Regenerator + Magic Guard + immune to Sticky Web.\",\n\t\tname: \"Eternal Generator\",\n\t\tonSwitchOut(pokemon) {\n\t\t\tpokemon.heal(pokemon.baseMaxhp / 3);\n\t\t},\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect.effectType !== 'Move') {\n\t\t\t\tif (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// TheJesucristoOsAma\n\tthegraceofjesuschrist: {\n\t\tshortDesc: \"Changes plates at the end of every turn.\",\n\t\tname: \"The Grace Of Jesus Christ\",\n\t\tonResidualOrder: 28,\n\t\tonResidualSubOrder: 2,\n\t\tonResidual(pokemon) {\n\t\t\tconst plates = this.dex.items.all().filter(item => item.onPlate && !item.zMove);\n\t\t\tconst item = this.sample(plates.filter(plate => this.toID(plate) !== this.toID(pokemon.item)));\n\t\t\tpokemon.item = '';\n\t\t\tthis.add('-item', pokemon, item, '[from] ability: The Grace Of Jesus Christ');\n\t\t\tpokemon.setItem(item);\n\t\t\tpokemon.formeChange(\"Arceus-\" + item.onPlate!, this.dex.abilities.get('thegraceofjesuschrist'), true);\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// trace\n\teyesofeternity: {\n\t\tshortDesc: \"Moves used by/against this Pokemon always hit; only damaged by attacks.\",\n\t\tname: \"Eyes of Eternity\",\n\t\tonAnyInvulnerabilityPriority: 1,\n\t\tonAnyInvulnerability(target, source, move) {\n\t\t\tif (move && (source === this.effectState.target || target === this.effectState.target)) return 0;\n\t\t},\n\t\tonAnyAccuracy(accuracy, target, source, move) {\n\t\t\tif (move && (source === this.effectState.target || target === this.effectState.target)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn accuracy;\n\t\t},\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect.effectType !== 'Move') {\n\t\t\t\tif (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Two of Roses\n\taswesee: {\n\t\tshortDesc: \"1x per turn: Stat gets boosted -> 50% chance to copy, 15% to raise another.\",\n\t\tdesc: \"Once per turn, when any active Pokemon has a stat boosted, this Pokemon has a 50% chance of copying it and a 15% chance to raise another random stat.\",\n\t\tname: \"As We See\",\n\t\tonFoeAfterBoost(boost, target, source, effect) { // Opportunist\n\t\t\tif (this.randomChance(1, 2)) {\n\t\t\t\tif (effect && ['As We See', 'Mirror Herb', 'Opportunist'].includes(effect.name)) return;\n\t\t\t\tconst pokemon = this.effectState.target;\n\t\t\t\tconst positiveBoosts: Partial<BoostsTable> = {};\n\t\t\t\tlet i: BoostID;\n\t\t\t\tfor (i in boost) {\n\t\t\t\t\tif (boost[i]! > 0) {\n\t\t\t\t\t\tpositiveBoosts[i] = boost[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (Object.keys(positiveBoosts).length < 1) return;\n\t\t\t\tthis.boost(positiveBoosts, pokemon);\n\t\t\t\tthis.effectState.triggered = true;\n\t\t\t}\n\t\t},\n\t\tonResidual(target, source, effect) {\n\t\t\tif (this.randomChance(15, 100) && this.effectState.triggered) {\n\t\t\t\tconst stats: BoostID[] = [];\n\t\t\t\tconst boost: SparseBoostsTable = {};\n\t\t\t\tlet statPlus: BoostID;\n\t\t\t\tfor (statPlus in target.boosts) {\n\t\t\t\t\tif (statPlus === 'accuracy' || statPlus === 'evasion') continue;\n\t\t\t\t\tif (target.boosts[statPlus] < 6) {\n\t\t\t\t\t\tstats.push(statPlus);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst randomStat: BoostID | undefined = stats.length ? this.sample(stats) : undefined;\n\t\t\t\tif (randomStat) boost[randomStat] = 1;\n\t\t\t\tthis.boost(boost, target, target);\n\t\t\t}\n\t\t\tthis.effectState.triggered = false;\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// UT\n\tgaleguard: {\n\t\tshortDesc: \"Mountaineer + Fur Coat.\",\n\t\tname: \"Gale Guard\",\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect && effect.name === 'Stealth Rock') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tonTryHit(target, source, move) {\n\t\t\tif (move.type === 'Rock' && !target.activeTurns) {\n\t\t\t\tthis.add('-immune', target, '[from] ability: Mountaineer');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tonModifyDef(def) {\n\t\t\treturn this.chainModify(2);\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// umuwo\n\tsoulsurfer: {\n\t\tname: \"Soul Surfer\",\n\t\tshortDesc: \"Drizzle + Surge Surfer.\",\n\t\tonStart(source) {\n\t\t\tthis.field.setWeather('raindance');\n\t\t},\n\t\tonModifySpe(spe) {\n\t\t\tif (this.field.isTerrain('electricterrain')) {\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Valerian\n\tfullbloom: {\n\t\tshortDesc: \"This Pok\u00E9mon's priority moves have double power.\",\n\t\tname: \"Full Bloom\",\n\t\tonBasePowerPriority: 30,\n\t\tonBasePower(basePower, pokemon, target, move) {\n\t\t\tif (move.priority > 0) {\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t},\n\n\t// Venous\n\tconcreteoverwater: {\n\t\tshortDesc: \"Gains +1 Defense and Sp. Def before getting hit by a super effective move.\",\n\t\tname: \"Concrete Over Water\",\n\t\tonTryHit(target, source, move) {\n\t\t\tif (target === source || move.category === 'Status') return;\n\t\t\tif (target.runEffectiveness(move) > 0) {\n\t\t\t\tthis.boost({ def: 1, spd: 1 }, target);\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Violet\n\tseenoevilhearnoevilspeaknoevil: {\n\t\tshortDesc: \"Dark immune; Cornerstone: Sound immune. Wellspring: Moves never miss. Hearthflame: 1.3x BP vs male.\",\n\t\tdesc: \"This Pokemon is immune to Dark-type attacks. If this Pokemon is Ogerpon-Cornerstone, it is immune to sound moves. If this Pokemon is Ogerpon-Wellspring, its moves will never miss. If this Pokemon is Ogerpon-Hearthflame, its damage against male targets is multiplied by 1.3x.\",\n\t\tname: \"See No Evil, Hear No Evil, Speak No Evil\",\n\t\tonTryHit(target, source, move) {\n\t\t\tif (target !== source && move.flags['sound'] && target.species.id.startsWith('ogerponcornerstone')) {\n\t\t\t\tif (!this.heal(target.baseMaxhp / 4)) {\n\t\t\t\t\tthis.add('-immune', target, '[from] ability: See No Evil, Hear No Evil, Speak No Evil');\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (target !== source && move.type === 'Dark') {\n\t\t\t\tthis.add('-immune', target, '[from] ability: See No Evil, Hear No Evil, Speak No Evil');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tonSourceAccuracy(accuracy, target, source, move) {\n\t\t\tif (!source.species.id.startsWith('ogerponwellspring')) return;\n\t\t\tif (typeof accuracy !== 'number') return;\n\t\t\treturn true;\n\t\t},\n\t\tonSourceModifyDamage(damage, source, target, move) {\n\t\t\tif (!source.species.id.startsWith('ogerponwellspring')) return;\n\t\t\tif (typeof move.accuracy === 'number' && move.accuracy < 100) {\n\t\t\t\tthis.debug('neutralize');\n\t\t\t\treturn this.chainModify(0.75);\n\t\t\t}\n\t\t},\n\t\tonBasePowerPriority: 24,\n\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\tif (!attacker.species.id.startsWith('ogerponhearthflame')) return;\n\t\t\tif (defender.gender === 'M') {\n\t\t\t\tthis.debug('attack boost');\n\t\t\t\treturn this.chainModify(1.3);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Vistar\n\tvirtualidol: {\n\t\tshortDesc: \"Dancer + Punk Rock.\",\n\t\tname: \"Virtual Idol\",\n\t\tonBasePowerPriority: 7,\n\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\tif (move.flags['sound']) {\n\t\t\t\tthis.debug('Punk Rock boost');\n\t\t\t\treturn this.chainModify([5325, 4096]);\n\t\t\t}\n\t\t},\n\t\tonSourceModifyDamage(damage, source, target, move) {\n\t\t\tif (move.flags['sound']) {\n\t\t\t\tthis.debug('Punk Rock weaken');\n\t\t\t\treturn this.chainModify(0.5);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// vmnunes\n\twildgrowth: {\n\t\tshortDesc: \"Attacking moves also inflict Leech Seed on the target.\",\n\t\tname: \"Wild Growth\",\n\t\tonModifyMovePriority: -1,\n\t\tonAfterMove(source, target, move) {\n\t\t\tif (target.hasType('Grass') || target.hasAbility('Sap Sipper') || !move.hit || target === source) return null;\n\t\t\ttarget.addVolatile('leechseed', source);\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// WarriorGallade\n\tprimevalharvest: {\n\t\tshortDesc: \"Sun: Heal 1/8 max HP, random berry if no item. Else 50% random berry if no item.\",\n\t\tdesc: \"In Sun, the user restores 1/8th of its maximum HP at the end of the turn and has a 100% chance to get a random berry if it has no item. Outside of sun, there is a 50% chance to get a random berry. Berry given will be one of: Cheri, Chesto, Pecha, Lum, Aguav, Liechi, Ganlon, Petaya, Apicot, Salac, Micle, Lansat, Enigma, Custap, Kee or Maranga.\",\n\t\tname: \"Primeval Harvest\",\n\t\tonResidualOrder: 28,\n\t\tonResidualSubOrder: 2,\n\t\tonResidual(pokemon) {\n\t\t\tconst isSunny = this.field.isWeather(['sunnyday', 'desolateland']);\n\t\t\tif (isSunny) {\n\t\t\t\tthis.heal(pokemon.baseMaxhp / 8, pokemon, pokemon, pokemon.getAbility());\n\t\t\t}\n\t\t\tif (isSunny || this.randomChance(1, 2)) {\n\t\t\t\tif (pokemon.hp && !pokemon.item) {\n\t\t\t\t\tconst berry = this.sample([\n\t\t\t\t\t\t'cheri', 'chesto', 'pecha', 'lum', 'aguav', 'liechi', 'ganlon', 'petaya',\n\t\t\t\t\t\t'apicot', 'salac', 'micle', 'lansat', 'enigma', 'custap', 'kee', 'maranga',\n\t\t\t\t\t]) + 'berry';\n\t\t\t\t\tpokemon.setItem(berry);\n\t\t\t\t\tpokemon.lastItem = '';\n\t\t\t\t\tthis.add('-item', pokemon, pokemon.getItem(), '[from] ability: Primeval Harvest');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// WigglyTree\n\ttreestance: {\n\t\tshortDesc: \"Rock Head + Filter.\",\n\t\tname: \"Tree Stance\",\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (effect.id === 'recoil') {\n\t\t\t\tif (!this.activeMove) throw new Error(\"Battle.activeMove is null\");\n\t\t\t\tif (this.activeMove.id !== 'struggle') return null;\n\t\t\t}\n\t\t},\n\t\tonSourceModifyDamage(damage, source, target, move) {\n\t\t\tif (target.getMoveHitData(move).typeMod > 0) {\n\t\t\t\tthis.debug('Tree Stance neutralize');\n\t\t\t\treturn this.chainModify(0.75);\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// xy01\n\tpanic: {\n\t\tshortDesc: \"Lowers the foe's Atk and Sp. Atk by 1 upon switch-in.\",\n\t\tname: \"Panic\",\n\t\tonStart(pokemon) {\n\t\t\tlet activated = false;\n\t\t\tfor (const target of pokemon.adjacentFoes()) {\n\t\t\t\tif (!activated) {\n\t\t\t\t\tthis.add('-ability', pokemon, 'Panic', 'boost');\n\t\t\t\t\tactivated = true;\n\t\t\t\t}\n\t\t\t\tif (target.volatiles['substitute']) {\n\t\t\t\t\tthis.add('-immune', target);\n\t\t\t\t} else {\n\t\t\t\t\tthis.boost({ atk: -1, spa: -1 }, target, pokemon, null, true);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// Yellow Paint\n\tyellowmagic: {\n\t\tshortDesc: \"+25% HP, +1 SpA, +1 Spe, Charge, or paralyzes attacker when hit by an Electric move; Electric immunity.\",\n\t\tdesc: \"This Pokemon is immune to Electric type moves. When this Pokemon is hit by one, it either: restores 25% of its maximum HP, boosts its Special Attack by 1 stage, boosts its Speed by 1 stage, gains the Charge effect, or paralyzes the attacker.\",\n\t\tname: \"Yellow Magic\",\n\t\tonTryHit(target, source, move) {\n\t\t\tif (target !== source && move.type === 'Electric') {\n\t\t\t\tlet didSomething = false;\n\t\t\t\tswitch (this.random(5)) {\n\t\t\t\tcase 0:\n\t\t\t\t\tdidSomething = !!this.heal(target.baseMaxhp / 4);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tdidSomething = !!this.boost({ spa: 1 }, target, target);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tdidSomething = !!this.boost({ spe: 1 }, target, target);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\tif (!target.volatiles['charge']) {\n\t\t\t\t\t\tthis.add('-ability', target, 'Yellow Magic');\n\t\t\t\t\t\ttarget.addVolatile('charge', target);\n\t\t\t\t\t\tdidSomething = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 4:\n\t\t\t\t\tdidSomething = source.trySetStatus('par', target);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!didSomething) {\n\t\t\t\t\tthis.add('-immune', target, '[from] ability: Yellow Magic');\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// yeet dab xd\n\ttreasurebag: {\n\t\tshortDesc: \"At the end of the turn and when top kek is used, use one Treasure Bag item in the cycle.\",\n\t\tdesc: \"At the end of each turn and when top kek is used, one of the following effects will occur, starting at the top and moving to the next item for each use of Treasure Bag: Deal 50 HP of damage to the foe, heal the user for 100 HP, paralyze the foe, set Aurora Veil for 5 turns, or grant the user a permanent Reviver Seed condition that causes it to revive to 50% upon reaching 0 HP once. If the Reviver Seed effect is set, all future cycles will replace that effect with a no-effect Reviser Seed item. The state of the cycle persists if the Pokemon switches out and back in.\",\n\t\tname: \"Treasure Bag\",\n\t\tonStart(target) {\n\t\t\tthis.add('-ability', target, 'Treasure Bag');\n\t\t\ttarget.addVolatile('treasurebag');\n\t\t},\n\t\tonResidual(target, source, effect) {\n\t\t\tif (!target.volatiles['treasurebag']) target.addVolatile('treasurebag');\n\t\t},\n\t\tcondition: {\n\t\t\tonStart(pokemon, source, sourceEffect) {\n\t\t\t\tif (!pokemon.m.bag) {\n\t\t\t\t\tpokemon.m.bag = ['Blast Seed', 'Oran Berry', 'Petrify Orb', 'Luminous Orb', 'Reviver Seed'];\n\t\t\t\t}\n\t\t\t},\n\t\t\tonResidual(pokemon, source, effect) {\n\t\t\t\tif (!pokemon.m.bag) {\n\t\t\t\t\tpokemon.m.bag = ['Blast Seed', 'Oran Berry', 'Petrify Orb', 'Luminous Orb', 'Reviver Seed'];\n\t\t\t\t}\n\t\t\t\tif (!pokemon.m.cycledTreasureBag) {\n\t\t\t\t\tconst currentItem = pokemon.m.bag.shift();\n\t\t\t\t\tconst foe = pokemon.foes()[0];\n\t\t\t\t\tswitch (currentItem) {\n\t\t\t\t\tcase 'Blast Seed':\n\t\t\t\t\t\tthis.add('-activate', pokemon, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${pokemon.name} dug through its Treasure Bag and found a ${currentItem}!`);\n\t\t\t\t\t\tif (foe) {\n\t\t\t\t\t\t\tthis.damage(50, foe, pokemon, this.effect);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.add('-message', `But there was no target!`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Oran Berry':\n\t\t\t\t\t\tthis.add('-activate', pokemon, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${pokemon.name} dug through its Treasure Bag and found an ${currentItem}!`);\n\t\t\t\t\t\tthis.heal(100, pokemon, pokemon, this.dex.items.get('Oran Berry'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Petrify Orb':\n\t\t\t\t\t\tthis.add('-activate', pokemon, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${pokemon.name} dug through its Treasure Bag and found a ${currentItem}!`);\n\t\t\t\t\t\tif (foe?.trySetStatus('par', pokemon, this.effect)) {\n\t\t\t\t\t\t\tthis.add('-message', `${pokemon.name} petrified ${foe.name}`);\n\t\t\t\t\t\t} else if (!foe) {\n\t\t\t\t\t\t\tthis.add('-message', `But there was no target!`);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.add('-message', `But it failed!`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Luminous Orb':\n\t\t\t\t\t\tthis.add('-activate', pokemon, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${pokemon.name} dug through its Treasure Bag and found a ${currentItem}!`);\n\t\t\t\t\t\tif (!pokemon.side.addSideCondition('auroraveil', pokemon, this.effect)) {\n\t\t\t\t\t\t\tthis.add('-message', `But it failed!`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t// Handled separately\n\t\t\t\t\tcase 'Reviver Seed':\n\t\t\t\t\t\tthis.add('-activate', pokemon, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${pokemon.name} dug through its Treasure Bag and found a Reviver Seed!`);\n\t\t\t\t\t\tpokemon.m.seedActive = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tpokemon.m.bag = [...pokemon.m.bag, currentItem];\n\t\t\t\t}\n\t\t\t\tdelete pokemon.m.cycledTreasureBag;\n\t\t\t},\n\t\t\tonAfterMoveSecondarySelf(source, target, move) {\n\t\t\t\tif (move.id !== 'topkek') return;\n\t\t\t\tif (!source.m.bag) {\n\t\t\t\t\tsource.m.bag = ['Blast Seed', 'Oran Berry', 'Petrify Orb', 'Luminous Orb', 'Reviver Seed'];\n\t\t\t\t}\n\t\t\t\tif (!source.m.cycledTreasureBag) {\n\t\t\t\t\tconst currentItem = source.m.bag.shift();\n\t\t\t\t\tconst foe = source.foes()[0];\n\t\t\t\t\tswitch (currentItem) {\n\t\t\t\t\tcase 'Blast Seed':\n\t\t\t\t\t\tthis.add('-activate', source, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${source.name} dug through its Treasure Bag and found a ${currentItem}!`);\n\t\t\t\t\t\tif (foe) {\n\t\t\t\t\t\t\tthis.damage(100, foe, source, this.effect);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.add('-message', `But there was no target!`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Oran Berry':\n\t\t\t\t\t\tthis.add('-activate', source, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${source.name} dug through its Treasure Bag and found an ${currentItem}!`);\n\t\t\t\t\t\tthis.heal(100, source, source, this.dex.items.get('Oran Berry'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Petrify Orb':\n\t\t\t\t\t\tthis.add('-activate', source, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${source.name} dug through its Treasure Bag and found a ${currentItem}!`);\n\t\t\t\t\t\tif (foe?.trySetStatus('par', source, this.effect)) {\n\t\t\t\t\t\t\tthis.add('-message', `${source.name} petrified ${foe.name}`);\n\t\t\t\t\t\t} else if (!foe) {\n\t\t\t\t\t\t\tthis.add('-message', `But there was no target!`);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.add('-message', `But it failed!`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Luminous Orb':\n\t\t\t\t\t\tthis.add('-activate', source, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${source.name} dug through its Treasure Bag and found a ${currentItem}!`);\n\t\t\t\t\t\tif (!source.side.addSideCondition('auroraveil', source, this.effect)) {\n\t\t\t\t\t\t\tthis.add('-message', `But it failed!`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t// Handled separately\n\t\t\t\t\tcase 'Reviver Seed':\n\t\t\t\t\t\tthis.add('-activate', source, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${source.name} dug through its Treasure Bag and found a Reviver Seed!`);\n\t\t\t\t\t\tsource.m.seedActive = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tsource.m.bag = [...source.m.bag, currentItem];\n\t\t\t\t}\n\t\t\t\tdelete source.m.cycledTreasureBag;\n\t\t\t},\n\t\t\tonDamage(damage, pokemon, source, effect) {\n\t\t\t\tif (damage >= pokemon.hp && pokemon.m.seedActive) {\n\t\t\t\t\tif (!pokemon.m.reviverSeedTriggered) {\n\t\t\t\t\t\t// Can't set hp to 0 because it causes visual bugs\n\t\t\t\t\t\tpokemon.hp = 1;\n\t\t\t\t\t\tthis.add('-damage', pokemon, pokemon.getHealth, '[silent]');\n\t\t\t\t\t\tthis.add('-activate', pokemon, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${pokemon.name} dug through its Treasure Bag and found a Reviver Seed!`);\n\t\t\t\t\t\tpokemon.m.reviverSeedTriggered = true;\n\t\t\t\t\t\tpokemon.hp = Math.floor(pokemon.maxhp / 2);\n\t\t\t\t\t\tthis.add('-heal', pokemon, pokemon.getHealth, '[silent]');\n\t\t\t\t\t\tthis.add('-message', `${pokemon.name} was revived!`);\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.add('-activate', pokemon, 'ability: Treasure Bag');\n\t\t\t\t\t\tthis.add('-message', `${pokemon.name} was revived!`);\n\t\t\t\t\t\tthis.add('-message', `...thought it was the right one...`);\n\t\t\t\t\t\tthis.add('-message', `...looking closer, this is...`);\n\t\t\t\t\t\tthis.add('-message', `Not a Reviver Seed, but a Reviser Seed!`);\n\t\t\t\t\t\tthis.add(`c:|${getName('yeet dab xd')}|An \"s\"?`);\n\t\t\t\t\t\tthis.add('-message', `that wasn't a \"v\", but an \"s\"!`);\n\t\t\t\t\t\tthis.add('-message', `yeet dab xd burst into spontaneous laughter and fainted!`);\n\t\t\t\t\t\treturn damage;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\t// yuki\n\tpartyup: {\n\t\tshortDesc: \"On switch-in, this Pokemon's ability is replaced with a random teammate's ability.\",\n\t\tname: \"Party Up\",\n\t\tonStart(target) {\n\t\t\tconst abilities = target.side.pokemon.map(x => x.getAbility()).filter(x => !x.flags['notrace']);\n\t\t\tif (!abilities.length) return;\n\t\t\tthis.add('-ability', target, 'Party Up');\n\t\t\ttarget.setAbility(this.sample(abilities), target);\n\t\t\tthis.add('-ability', target, target.getAbility().name);\n\t\t},\n\t\tflags: { notrace: 1 },\n\t},\n\n\t// YveltalNL\n\theightadvantage: {\n\t\tshortDesc: \"If this Pokemon's height is more than that of the foe, -1 to foe's Attack/Sp. Atk.\",\n\t\tname: \"Height Advantage\",\n\t\tonStart(pokemon) {\n\t\t\tlet activated = false;\n\t\t\tfor (const target of pokemon.adjacentFoes()) {\n\t\t\t\tif (!activated) {\n\t\t\t\t\tthis.add('-ability', pokemon, 'Height Advantage', 'boost');\n\t\t\t\t\tactivated = true;\n\t\t\t\t}\n\t\t\t\tif (target.volatiles['substitute']) {\n\t\t\t\t\tthis.add('-immune', target);\n\t\t\t\t} else {\n\t\t\t\t\tif (this.dex.species.get(pokemon.species).heightm > this.dex.species.get(target.species).heightm) {\n\t\t\t\t\t\tthis.boost({ atk: -1, spa: -1 }, target, pokemon, null, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tflags: {},\n\t},\n\n\t// za\n\ttroll: {\n\t\tshortDesc: \"Using moves that can flinch makes user move first in their priority bracket.\",\n\t\tname: \"Troll\",\n\t\tonFractionalPriority(priority, pokemon, target, move) {\n\t\t\tif (move?.secondaries?.some(m => m.volatileStatus === 'flinch')) {\n\t\t\t\tthis.add('-activate', pokemon, 'ability: Troll');\n\t\t\t\treturn 0.1;\n\t\t\t}\n\t\t},\n\t},\n\n\t// Zarel\n\ttempochange: {\n\t\tshortDesc: \"Switches Meloetta's forme between Aria and Pirouette at the end of each turn.\",\n\t\tname: \"Tempo Change\",\n\t\tonResidualOrder: 29,\n\t\tonResidual(pokemon) {\n\t\t\tif (pokemon.species.baseSpecies !== 'Meloetta') return;\n\t\t\tif (pokemon.species.name === 'Meloetta') {\n\t\t\t\tchangeSet(this, pokemon, ssbSets['Zarel-Pirouette'], true);\n\t\t\t} else {\n\t\t\t\tchangeSet(this, pokemon, ssbSets['Zarel'], true);\n\t\t\t}\n\t\t},\n\t\tflags: { failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1 },\n\t},\n\n\t// zoro\n\tninelives: {\n\t\tshortDesc: \"Twice per battle, this Pokemon will survive a lethal hit with 1 HP remaining, regardless of HP.\",\n\t\tname: \"Nine Lives\",\n\t\tonTryHit(pokemon, target, move) {\n\t\t\tif (move.ohko) {\n\t\t\t\tthis.add('-immune', pokemon, '[from] ability: Nine Lives');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tonDamagePriority: -30,\n\t\tonDamage(damage, target, source, effect) {\n\t\t\tif (damage >= target.hp && effect?.effectType === 'Move' && !this.effectState.busted) {\n\t\t\t\tthis.add('-ability', target, 'Nine Lives');\n\t\t\t\tif (this.effectState.busted === 0) {\n\t\t\t\t\tthis.effectState.busted = 1;\n\t\t\t\t} else {\n\t\t\t\t\tthis.effectState.busted = 0;\n\t\t\t\t}\n\t\t\t\treturn target.hp - 1;\n\t\t\t}\n\t\t},\n\t\t// Yes, this looks very patchwork-y. declaring new persistent global variables seems to be a no-go here\n\t\t// so i repurposed one which should likely not affect anything else - have tested with clerica/zoro on both sides\n\t\t// and their disguise/sturdy state is unaffected by modifying anything here. but let wg know if this breaks stuff.\n\t\tflags: { breakable: 1 },\n\t},\n\n\t// Modified abilities\n\tbaddreams: {\n\t\tinherit: true,\n\t\tonResidual(pokemon) {\n\t\t\tif (!pokemon.hp) return;\n\t\t\tfor (const target of pokemon.foes()) {\n\t\t\t\tif (target.status === 'slp' || target.hasAbility(['comatose', 'mensiscage'])) {\n\t\t\t\t\tthis.damage(target.baseMaxhp / 8, target, pokemon);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\tdeltastream: {\n\t\tinherit: true,\n\t\tonAnySetWeather(target, source, weather) {\n\t\t\tif (this.field.getWeather().id === 'deltastream' && !STRONG_WEATHERS.includes(weather.id)) return false;\n\t\t},\n\t},\n\tdesolateland: {\n\t\tinherit: true,\n\t\tonAnySetWeather(target, source, weather) {\n\t\t\tif (this.field.getWeather().id === 'desolateland' && !STRONG_WEATHERS.includes(weather.id)) return false;\n\t\t},\n\t},\n\tdryskin: {\n\t\tinherit: true,\n\t\tonWeather(target, source, effect) {\n\t\t\tif (target.hasItem('utilityumbrella')) return;\n\t\t\tif (effect.id === 'raindance' || effect.id === 'primordialsea' || effect.id === 'stormsurge') {\n\t\t\t\tthis.heal(target.baseMaxhp / 8);\n\t\t\t} else if (effect.id === 'sunnyday' || effect.id === 'desolateland') {\n\t\t\t\tthis.damage(target.baseMaxhp / 8, target, target);\n\t\t\t}\n\t\t},\n\t},\n\tforecast: {\n\t\tinherit: true,\n\t\tonWeatherChange(pokemon) {\n\t\t\tif (pokemon.baseSpecies.baseSpecies !== 'Castform' || pokemon.transformed) return;\n\t\t\tlet forme = null;\n\t\t\tswitch (pokemon.effectiveWeather()) {\n\t\t\tcase 'sunnyday':\n\t\t\tcase 'desolateland':\n\t\t\t\tif (pokemon.species.id !== 'castformsunny') forme = 'Castform-Sunny';\n\t\t\t\tbreak;\n\t\t\tcase 'raindance':\n\t\t\tcase 'primordialsea':\n\t\t\tcase 'stormsurge':\n\t\t\t\tif (pokemon.species.id !== 'castformrainy') forme = 'Castform-Rainy';\n\t\t\t\tbreak;\n\t\t\tcase 'hail':\n\t\t\tcase 'snowscape':\n\t\t\t\tif (pokemon.species.id !== 'castformsnowy') forme = 'Castform-Snowy';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tif (pokemon.species.id !== 'castform') forme = 'Castform';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (pokemon.isActive && forme) {\n\t\t\t\tpokemon.formeChange(forme, this.effect, false, '0', '[msg]');\n\t\t\t}\n\t\t},\n\t},\n\thydration: {\n\t\tinherit: true,\n\t\tonResidual(pokemon) {\n\t\t\tif (pokemon.status && ['raindance', 'primordialsea', 'stormsurge'].includes(pokemon.effectiveWeather())) {\n\t\t\t\tthis.debug('hydration');\n\t\t\t\tthis.add('-activate', pokemon, 'ability: Hydration');\n\t\t\t\tpokemon.cureStatus();\n\t\t\t}\n\t\t},\n\t},\n\tneutralizinggas: {\n\t\tinherit: true,\n\t\tonSwitchIn(pokemon) {\n\t\t\tthis.add('-ability', pokemon, 'Neutralizing Gas');\n\t\t\tpokemon.abilityState.ending = false;\n\t\t\tfor (const target of this.getAllActive()) {\n\t\t\t\tif (target.hasItem('Ability Shield')) {\n\t\t\t\t\tthis.add('-block', target, 'item: Ability Shield');\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t// Can't suppress a Tatsugiri inside of Dondozo already\n\t\t\t\tif (target.volatiles['commanding']) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (target.illusion) {\n\t\t\t\t\tthis.singleEvent('End', this.dex.abilities.get('Illusion'), target.abilityState, target, pokemon, 'neutralizinggas');\n\t\t\t\t}\n\t\t\t\tif (target.volatiles['slowstart']) {\n\t\t\t\t\tdelete target.volatiles['slowstart'];\n\t\t\t\t\tthis.add('-end', target, 'Slow Start', '[silent]');\n\t\t\t\t}\n\t\t\t\tif (STRONG_WEATHERS.includes(target.getAbility().id)) {\n\t\t\t\t\tthis.singleEvent('End', this.dex.abilities.get(target.getAbility().id), target.abilityState, target, pokemon, 'neutralizinggas');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\tovercoat: {\n\t\tinherit: true,\n\t\tonImmunity(type, pokemon) {\n\t\t\tif (type === 'sandstorm' || type === 'deserteddunes' || type === 'hail' || type === 'powder') return false;\n\t\t},\n\t},\n\tprimordialsea: {\n\t\tinherit: true,\n\t\tonAnySetWeather(target, source, weather) {\n\t\t\tif (this.field.getWeather().id === 'primordialsea' && !STRONG_WEATHERS.includes(weather.id)) return false;\n\t\t},\n\t},\n\traindish: {\n\t\tinherit: true,\n\t\tonWeather(target, source, effect) {\n\t\t\tif (target.hasItem('utilityumbrella')) return;\n\t\t\tif (effect.id === 'raindance' || effect.id === 'primordialsea' || effect.id === 'stormsurge') {\n\t\t\t\tthis.heal(target.baseMaxhp / 16);\n\t\t\t}\n\t\t},\n\t},\n\tsandforce: {\n\t\tinherit: true,\n\t\tonBasePower(basePower, attacker, defender, move) {\n\t\t\tif (this.field.isWeather(['sandstorm', 'deserteddunes'])) {\n\t\t\t\tif (move.type === 'Rock' || move.type === 'Ground' || move.type === 'Steel') {\n\t\t\t\t\tthis.debug('Sand Force boost');\n\t\t\t\t\treturn this.chainModify([5325, 4096]);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonImmunity(type, pokemon) {\n\t\t\tif (type === 'sandstorm' || type === 'deserteddunes') return false;\n\t\t},\n\t},\n\tsandrush: {\n\t\tinherit: true,\n\t\tonModifySpe(spe, pokemon) {\n\t\t\tif (this.field.isWeather(['sandstorm', 'deserteddunes'])) {\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t\tonImmunity(type, pokemon) {\n\t\t\tif (type === 'sandstorm' || type === 'deserteddunes') return false;\n\t\t},\n\t},\n\tsandveil: {\n\t\tinherit: true,\n\t\tonImmunity(type, pokemon) {\n\t\t\tif (type === 'sandstorm' || type === 'deserteddunes') return false;\n\t\t},\n\t\tonModifyAccuracy(accuracy) {\n\t\t\tif (typeof accuracy !== 'number') return;\n\t\t\tif (this.field.isWeather(['sandstorm', 'deserteddunes'])) {\n\t\t\t\tthis.debug('Sand Veil - decreasing accuracy');\n\t\t\t\treturn this.chainModify([3277, 4096]);\n\t\t\t}\n\t\t},\n\t},\n\tswiftswim: {\n\t\tinherit: true,\n\t\tonModifySpe(spe, pokemon) {\n\t\t\tif (['raindance', 'primordialsea', 'stormsurge'].includes(pokemon.effectiveWeather())) {\n\t\t\t\treturn this.chainModify(2);\n\t\t\t}\n\t\t},\n\t},\n};\n"], | |
"mappings": "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", | |
"names": ["target", "item"] | |
} | |