{ "version": 3, "sources": ["../../../../../data/mods/gen2/random-teams.ts"], "sourcesContent": ["import RandomGen3Teams from '../gen3/random-teams';\r\nimport {PRNG, PRNGSeed} from '../../../sim/prng';\r\nimport type {MoveCounter, OldRandomBattleSpecies} from '../gen8/random-teams';\r\n\r\nexport class RandomGen2Teams extends RandomGen3Teams {\r\n\trandomData: {[species: string]: OldRandomBattleSpecies} = require('./random-data.json');\r\n\r\n\tconstructor(format: string | Format, prng: PRNG | PRNGSeed | null) {\r\n\t\tsuper(format, prng);\r\n\t\tthis.moveEnforcementCheckers = {\r\n\t\t\tElectric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'),\r\n\t\t\tFire: (movePool, moves, abilities, types, counter) => !counter.get('Fire'),\r\n\t\t\tFlying: (movePool, moves, abilities, types, counter) => !counter.get('Flying') && types.has('Ground'),\r\n\t\t\tGround: (movePool, moves, abilities, types, counter) => !counter.get('Ground'),\r\n\t\t\tIce: (movePool, moves, abilities, types, counter) => !counter.get('Ice'),\r\n\t\t\tNormal: (movePool, moves, abilities, types, counter) => !counter.get('Normal') && counter.setupType === 'Physical',\r\n\t\t\tPsychic: (movePool, moves, abilities, types, counter) => !counter.get('Psychic') && types.has('Grass'),\r\n\t\t\tRock: (movePool, moves, abilities, types, counter, species) => !counter.get('Rock') && species.baseStats.atk > 60,\r\n\t\t\tWater: (movePool, moves, abilities, types, counter) => !counter.get('Water'),\r\n\t\t};\r\n\t}\r\n\r\n\tshouldCullMove(\r\n\t\tmove: Move,\r\n\t\ttypes: Set,\r\n\t\tmoves: Set,\r\n\t\tabilities = {},\r\n\t\tcounter: MoveCounter,\r\n\t\tmovePool: string[],\r\n\t\tteamDetails: RandomTeamsTypes.TeamDetails,\r\n\t): {cull: boolean, isSetup?: boolean} {\r\n\t\tconst restTalk = moves.has('rest') && moves.has('sleeptalk');\r\n\r\n\t\tswitch (move.id) {\r\n\t\t// Set up once and only if we have the moves for it\r\n\t\tcase 'bellydrum': case 'curse': case 'meditate': case 'screech': case 'swordsdance':\r\n\t\t\treturn {\r\n\t\t\t\tcull: (\r\n\t\t\t\t\t(counter.setupType !== 'Physical' || counter.get('physicalsetup') > 1) ||\r\n\t\t\t\t\t(!counter.get('Physical') || counter.damagingMoves.size < 2 && !moves.has('batonpass') && !moves.has('sleeptalk'))\r\n\t\t\t\t),\r\n\t\t\t\tisSetup: true,\r\n\t\t\t};\r\n\r\n\t\t// Not very useful without their supporting moves\r\n\t\tcase 'batonpass':\r\n\t\t\treturn {cull: !counter.setupType && !counter.get('speedsetup') && !moves.has('meanlook')};\r\n\t\tcase 'meanlook':\r\n\t\t\treturn {cull: movePool.includes('perishsong')};\r\n\t\tcase 'nightmare':\r\n\t\t\treturn {cull: !moves.has('lovelykiss') && !moves.has('sleeppowder')};\r\n\t\tcase 'swagger':\r\n\t\t\treturn {cull: !moves.has('substitute')};\r\n\r\n\t\t// Bad after setup\r\n\t\tcase 'charm': case 'counter':\r\n\t\t\treturn {cull: !!counter.setupType};\r\n\t\tcase 'haze':\r\n\t\t\treturn {cull: !!counter.setupType || restTalk};\r\n\t\tcase 'reflect': case 'lightscreen':\r\n\t\t\treturn {cull: !!counter.setupType || moves.has('rest')};\r\n\r\n\t\t// Ineffective to have both\r\n\t\tcase 'doubleedge':\r\n\t\t\treturn {cull: moves.has('bodyslam') || moves.has('return')};\r\n\t\tcase 'explosion': case 'selfdestruct':\r\n\t\t\treturn {cull: moves.has('softboiled') || restTalk};\r\n\t\tcase 'extremespeed':\r\n\t\t\treturn {cull: moves.has('bodyslam') || restTalk};\r\n\t\tcase 'hyperbeam':\r\n\t\t\treturn {cull: moves.has('rockslide')};\r\n\t\tcase 'rapidspin':\r\n\t\t\treturn {cull: !!teamDetails.rapidSpin || !!counter.setupType || moves.has('sleeptalk')};\r\n\t\tcase 'return':\r\n\t\t\treturn {cull: moves.has('bodyslam')};\r\n\t\tcase 'surf':\r\n\t\t\treturn {cull: moves.has('hydropump')};\r\n\t\tcase 'thunder':\r\n\t\t\treturn {cull: moves.has('thunderbolt')};\r\n\t\tcase 'razorleaf':\r\n\t\t\treturn {cull: moves.has('swordsdance') && movePool.includes('sludgebomb')};\r\n\t\tcase 'icebeam':\r\n\t\t\treturn {cull: moves.has('dragonbreath')};\r\n\t\tcase 'seismictoss':\r\n\t\t\treturn {cull: moves.has('rest') || moves.has('sleeptalk')};\r\n\t\tcase 'destinybond':\r\n\t\t\treturn {cull: moves.has('explosion')};\r\n\t\tcase 'pursuit':\r\n\t\t\treturn {cull: moves.has('crunch') && moves.has('solarbeam')};\r\n\t\tcase 'thief':\r\n\t\t\treturn {cull: moves.has('rest') || moves.has('substitute')};\r\n\t\tcase 'irontail':\r\n\t\t\treturn {cull: types.has('Ground') && movePool.includes('earthquake')};\r\n\r\n\t\t// Status and illegal move rejections\r\n\t\tcase 'confuseray': case 'encore': case 'roar': case 'whirlwind':\r\n\t\t\treturn {cull: restTalk};\r\n\t\tcase 'lovelykiss':\r\n\t\t\treturn {cull: ['healbell', 'moonlight', 'morningsun', 'sleeptalk'].some(m => moves.has(m))};\r\n\t\tcase 'sleeptalk':\r\n\t\t\treturn {cull: moves.has('curse') && counter.get('stab') >= 2};\r\n\t\tcase 'softboiled':\r\n\t\t\treturn {cull: movePool.includes('swordsdance')};\r\n\t\tcase 'spikes':\r\n\t\t\treturn {cull: !!teamDetails.spikes};\r\n\t\tcase 'substitute':\r\n\t\t\treturn {cull: moves.has('agility') || moves.has('rest')};\r\n\t\tcase 'synthesis':\r\n\t\t\treturn {cull: moves.has('explosion')};\r\n\t\tcase 'thunderwave':\r\n\t\t\treturn {cull: moves.has('thunder') || moves.has('toxic')};\r\n\t\t}\r\n\r\n\t\treturn {cull: false};\r\n\t}\r\n\r\n\tgetItem(\r\n\t\tability: string,\r\n\t\ttypes: Set,\r\n\t\tmoves: Set,\r\n\t\tcounter: MoveCounter,\r\n\t\tspecies: Species,\r\n\t) {\r\n\t\t// First, the high-priority items\r\n\t\tif (species.name === 'Ditto') return 'Metal Powder';\r\n\t\tif (species.name === 'Farfetch\\u2019d') return 'Stick';\r\n\t\tif (species.name === 'Marowak') return 'Thick Club';\r\n\t\tif (species.name === 'Pikachu') return 'Light Ball';\r\n\t\tif (species.name === 'Unown') return 'Twisted Spoon';\r\n\t\tif (moves.has('thief')) return '';\r\n\r\n\t\t// Medium priority\r\n\t\tif (moves.has('rest') && !moves.has('sleeptalk')) return 'Mint Berry';\r\n\t\tif (\r\n\t\t\t(moves.has('bellydrum') || moves.has('swordsdance')) &&\r\n\t\t\tspecies.baseStats.spe >= 60 && !types.has('Ground') &&\r\n\t\t\t!moves.has('sleeptalk') && !moves.has('substitute') &&\r\n\t\t\tthis.randomChance(1, 2)\r\n\t\t) {\r\n\t\t\treturn 'Miracle Berry';\r\n\t\t}\r\n\r\n\t\t// Default to Leftovers\r\n\t\treturn 'Leftovers';\r\n\t}\r\n\r\n\trandomSet(species: string | Species, teamDetails: RandomTeamsTypes.TeamDetails = {}): RandomTeamsTypes.RandomSet {\r\n\t\tspecies = this.dex.species.get(species);\r\n\r\n\t\tconst data = this.randomData[species.id];\r\n\t\tconst movePool = (data.moves || Object.keys(this.dex.species.getLearnset(species.id)!)).slice();\r\n\t\tconst rejectedPool: string[] = [];\r\n\t\tconst moves = new Set();\r\n\r\n\t\tlet ivs = {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30};\r\n\t\tlet availableHP = 0;\r\n\t\tfor (const setMoveid of movePool) {\r\n\t\t\tif (setMoveid.startsWith('hiddenpower')) availableHP++;\r\n\t\t}\r\n\r\n\t\tconst types = new Set(species.types);\r\n\r\n\t\tlet counter;\r\n\t\t// We use a special variable to track Hidden Power\r\n\t\t// so that we can check for all Hidden Powers at once\r\n\t\tlet hasHiddenPower = false;\r\n\r\n\t\tdo {\r\n\t\t\t// Choose next 4 moves from learnset/viable moves and add them to moves list:\r\n\t\t\twhile (moves.size < this.maxMoveCount && movePool.length) {\r\n\t\t\t\tconst moveid = this.sampleNoReplace(movePool);\r\n\t\t\t\tif (moveid.startsWith('hiddenpower')) {\r\n\t\t\t\t\tavailableHP--;\r\n\t\t\t\t\tif (hasHiddenPower) continue;\r\n\t\t\t\t\thasHiddenPower = true;\r\n\t\t\t\t}\r\n\t\t\t\tmoves.add(moveid);\r\n\t\t\t}\r\n\t\t\twhile (moves.size < this.maxMoveCount && rejectedPool.length) {\r\n\t\t\t\tconst moveid = this.sampleNoReplace(rejectedPool);\r\n\t\t\t\tif (moveid.startsWith('hiddenpower')) {\r\n\t\t\t\t\tif (hasHiddenPower) continue;\r\n\t\t\t\t\thasHiddenPower = true;\r\n\t\t\t\t}\r\n\t\t\t\tmoves.add(moveid);\r\n\t\t\t}\r\n\r\n\t\t\tcounter = this.queryMoves(moves, species.types, new Set(), movePool);\r\n\r\n\t\t\t// Iterate through the moves again, this time to cull them:\r\n\t\t\tfor (const moveid of moves) {\r\n\t\t\t\tconst move = this.dex.moves.get(moveid);\r\n\t\t\t\tlet {cull, isSetup} = this.shouldCullMove(move, types, moves, {}, counter, movePool, teamDetails);\r\n\r\n\t\t\t\t// This move doesn't satisfy our setup requirements:\r\n\t\t\t\tif (counter.setupType === 'Physical' && move.category === 'Special' && !counter.get('Physical')) {\r\n\t\t\t\t\tcull = true;\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t// Reject Status, non-STAB, or low basepower moves\r\n\t\t\t\tconst moveIsRejectable = (\r\n\t\t\t\t\t(move.category !== 'Status' || !move.flags.heal) &&\r\n\t\t\t\t\t// These moves cannot be rejected in favor of a forced move\r\n\t\t\t\t\t!['batonpass', 'sleeptalk', 'spikes', 'sunnyday'].includes(move.id) &&\r\n\t\t\t\t\t(move.category === 'Status' || !types.has(move.type) || (move.basePower && move.basePower < 40))\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (!cull && !isSetup && moveIsRejectable && (counter.setupType || !move.stallingMove)) {\r\n\t\t\t\t\t// There may be more important moves that this Pokemon needs\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t// Pokemon should usually have at least one STAB move\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t!counter.get('stab') &&\r\n\t\t\t\t\t\t\t!counter.get('damage') &&\r\n\t\t\t\t\t\t\t!types.has('Ghost') &&\r\n\t\t\t\t\t\t\tcounter.get('physicalpool') + counter.get('specialpool') > 0\r\n\t\t\t\t\t\t) || (movePool.includes('megahorn') || (movePool.includes('softboiled') && moves.has('present'))) ||\r\n\t\t\t\t\t\t// Rest + Sleep Talk should be selected together\r\n\t\t\t\t\t\t((moves.has('rest') && movePool.includes('sleeptalk')) || (moves.has('sleeptalk') && movePool.includes('rest'))) ||\r\n\t\t\t\t\t\t// Sunny Day + Solar Beam should be selected together\r\n\t\t\t\t\t\t(moves.has('sunnyday') && movePool.includes('solarbeam') ||\r\n\t\t\t\t\t\t(moves.has('solarbeam') && movePool.includes('sunnyday'))) ||\r\n\t\t\t\t\t\t['milkdrink', 'recover', 'spore'].some(m => movePool.includes(m))\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tcull = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Pokemon should have moves that benefit their typing\r\n\t\t\t\t\t\tfor (const type of types) {\r\n\t\t\t\t\t\t\tif (this.moveEnforcementCheckers[type]?.(movePool, moves, new Set(), types, counter, species, teamDetails)) cull = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Remove rejected moves from the move list\r\n\t\t\t\tif (\r\n\t\t\t\t\tcull &&\r\n\t\t\t\t\t(movePool.length - availableHP || availableHP && (move.id === 'hiddenpower' || !hasHiddenPower))\r\n\t\t\t\t) {\r\n\t\t\t\t\tif (move.category !== 'Status' && !move.damage && (move.id !== 'hiddenpower' || !availableHP)) {\r\n\t\t\t\t\t\trejectedPool.push(moveid);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmoves.delete(moveid);\r\n\t\t\t\t\tif (moveid.startsWith('hiddenpower')) hasHiddenPower = false;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (cull && rejectedPool.length) {\r\n\t\t\t\t\tmoves.delete(moveid);\r\n\t\t\t\t\tif (moveid.startsWith('hiddenpower')) hasHiddenPower = false;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} while (moves.size < this.maxMoveCount && (movePool.length || rejectedPool.length));\r\n\r\n\t\t// Adjust IVs for Hidden Power\r\n\t\tfor (const setMoveid of moves) {\r\n\t\t\tif (!setMoveid.startsWith('hiddenpower')) continue;\r\n\t\t\tconst hpType = setMoveid.substr(11, setMoveid.length);\r\n\r\n\t\t\tconst hpIVs: {[k: string]: Partial} = {\r\n\t\t\t\tdragon: {def: 28},\r\n\t\t\t\tice: {def: 26},\r\n\t\t\t\tpsychic: {def: 24},\r\n\t\t\t\telectric: {atk: 28},\r\n\t\t\t\tgrass: {atk: 28, def: 28},\r\n\t\t\t\twater: {atk: 28, def: 26},\r\n\t\t\t\tfire: {atk: 28, def: 24},\r\n\t\t\t\tsteel: {atk: 26},\r\n\t\t\t\tghost: {atk: 26, def: 28},\r\n\t\t\t\tbug: {atk: 26, def: 26},\r\n\t\t\t\trock: {atk: 26, def: 24},\r\n\t\t\t\tground: {atk: 24},\r\n\t\t\t\tpoison: {atk: 24, def: 28},\r\n\t\t\t\tflying: {atk: 24, def: 26},\r\n\t\t\t\tfighting: {atk: 24, def: 24},\r\n\t\t\t};\r\n\t\t\tif (hpIVs[hpType]) {\r\n\t\t\t\tivs = {...ivs, ...hpIVs[hpType]};\r\n\t\t\t}\r\n\r\n\t\t\tif (ivs.atk === 28 || ivs.atk === 24) ivs.hp = 14;\r\n\t\t\tif (ivs.def === 28 || ivs.def === 24) ivs.hp -= 8;\r\n\t\t}\r\n\r\n\t\tconst levelScale: {[k: string]: number} = {\r\n\t\t\tNU: 73,\r\n\t\t\tNUBL: 71,\r\n\t\t\tUU: 69,\r\n\t\t\tUUBL: 67,\r\n\t\t\tOU: 65,\r\n\t\t\tUber: 61,\r\n\t\t};\r\n\r\n\t\tconst level = this.adjustLevel || data.level || levelScale[species.tier] || 80;\r\n\r\n\t\treturn {\r\n\t\t\tname: species.name,\r\n\t\t\tspecies: species.name,\r\n\t\t\tmoves: Array.from(moves),\r\n\t\t\tability: 'No Ability',\r\n\t\t\tevs: {hp: 255, atk: 255, def: 255, spa: 255, spd: 255, spe: 255},\r\n\t\t\tivs,\r\n\t\t\titem: this.getItem('None', types, moves, counter, species),\r\n\t\t\tlevel,\r\n\t\t\t// No shiny chance because Gen 2 shinies have bad IVs\r\n\t\t\tshiny: false,\r\n\t\t\tgender: species.gender ? species.gender : 'M',\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport default RandomGen2Teams;\r\n"], "mappings": "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", "names": ["RandomGen3Teams"] }