Spaces:
Running
Running
{ | |
"version": 3, | |
"sources": ["../../../../data/random-battles/gen8bdsp/teams.ts"], | |
"sourcesContent": ["// BDSP team generation logic is currently largely shared with Swsh\n\nimport { type PRNG, type PRNGSeed } from '../../../sim/prng';\nimport { type MoveCounter, RandomGen8Teams, type OldRandomBattleSpecies } from '../gen8/teams';\n\nexport class RandomBDSPTeams extends RandomGen8Teams {\n\trandomData: { [species: string]: OldRandomBattleSpecies } = require('./data.json');\n\n\tconstructor(format: Format | string, prng: PRNG | PRNGSeed | null) {\n\t\tsuper(format, prng);\n\t\tthis.noStab = [...this.noStab, 'gigaimpact'];\n\t}\n\n\tgetHighPriorityItem(\n\t\tability: string,\n\t\ttypes: Set<string>,\n\t\tmoves: Set<string>,\n\t\tcounter: MoveCounter,\n\t\tteamDetails: RandomTeamsTypes.TeamDetails,\n\t\tspecies: Species,\n\t\tisLead: boolean,\n\t\tisDoubles: boolean\n\t) {\n\t\t// not undefined \u2014 we want \"no item\" not \"go find a different item\"\n\t\tif (moves.has('acrobatics')) return '';\n\t\tif (moves.has('solarbeam') && !(moves.has('sunnyday') || ability === 'Drought' || teamDetails.sun)) return 'Power Herb';\n\t\tif (moves.has('shellsmash')) return 'White Herb';\n\t\t// Species-specific item assigning\n\t\tif (species.name === 'Farfetch\\u2019d') return 'Leek';\n\t\tif (species.name === 'Latios' || species.name === 'Latias') return 'Soul Dew';\n\t\tif (species.name === 'Lopunny') return 'Toxic Orb';\n\t\tif (species.baseSpecies === 'Marowak') return 'Thick Club';\n\t\tif (species.baseSpecies === 'Pikachu') return 'Light Ball';\n\t\tif (species.name === 'Shedinja' || species.name === 'Smeargle') return 'Focus Sash';\n\t\tif (species.name === 'Shuckle' && moves.has('stickyweb')) return 'Mental Herb';\n\t\tif (ability !== 'Sniper' && (ability === 'Super Luck' || moves.has('focusenergy'))) return 'Scope Lens';\n\t\tif (species.name === 'Wobbuffet' && moves.has('destinybond')) return 'Custap Berry';\n\t\tif (species.name === 'Scyther' && counter.damagingMoves.size > 3) return 'Choice Band';\n\t\tif ((moves.has('bellydrum') || moves.has('tailglow')) && moves.has('substitute')) return 'Salac Berry';\n\n\t\t// Ability based logic and miscellaneous logic\n\t\tif (species.name === 'Wobbuffet' || ability === 'Ripen' || ability === 'Harvest') return 'Sitrus Berry';\n\t\tif (ability === 'Gluttony') return this.sample(['Aguav', 'Figy', 'Iapapa', 'Mago', 'Wiki']) + ' Berry';\n\t\tif (ability === 'Imposter') return 'Choice Scarf';\n\t\tif (ability === 'Guts' && counter.get('Physical') > 2) {\n\t\t\treturn types.has('Fire') ? 'Toxic Orb' : 'Flame Orb';\n\t\t}\n\t\tif (ability === 'Quick Feet' && moves.has('facade')) return 'Toxic Orb';\n\t\tif (ability === 'Toxic Boost' || ability === 'Poison Heal') return 'Toxic Orb';\n\t\tif (ability === 'Magic Guard' && counter.damagingMoves.size > 1) {\n\t\t\treturn moves.has('counter') ? 'Focus Sash' : 'Life Orb';\n\t\t}\n\t\tif (ability === 'Sheer Force' && counter.get('sheerforce')) return 'Life Orb';\n\t\tif (ability === 'Unburden') return (moves.has('closecombat') || moves.has('curse')) ? 'White Herb' : 'Sitrus Berry';\n\n\t\tif (!moves.has('fakeout') && (moves.has('trick') || moves.has('switcheroo'))) {\n\t\t\tif (species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && !counter.get('priority')) {\n\t\t\t\treturn 'Choice Scarf';\n\t\t\t} else {\n\t\t\t\treturn (counter.get('Physical') > counter.get('Special')) ? 'Choice Band' : 'Choice Specs';\n\t\t\t}\n\t\t}\n\t\tif (moves.has('auroraveil') || moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay';\n\t\tconst statusCuringAbility = (\n\t\t\tability === 'Shed Skin' ||\n\t\t\tability === 'Natural Cure' ||\n\t\t\t(ability === 'Hydration' && moves.has('raindance'))\n\t\t);\n\t\tconst restWithoutSleepTalk = (moves.has('rest') && !moves.has('sleeptalk'));\n\t\tif (restWithoutSleepTalk && !statusCuringAbility) return 'Chesto Berry';\n\t\tif (moves.has('bellydrum')) return 'Sitrus Berry';\n\t}\n\n\tgetMediumPriorityItem(\n\t\tability: string,\n\t\tmoves: Set<string>,\n\t\tcounter: MoveCounter,\n\t\tspecies: Species,\n\t\tisLead: boolean,\n\t\tisDoubles: boolean,\n\t): string | undefined {\n\t\t// Choice items\n\t\tif (moves.size === 1) {\n\t\t\tswitch (this.dex.moves.get([...moves][0]).category) {\n\t\t\tcase 'Status':\n\t\t\t\treturn 'Choice Scarf';\n\t\t\tcase 'Physical':\n\t\t\t\treturn 'Choice Band';\n\t\t\tcase 'Special':\n\t\t\t\treturn 'Choice Specs';\n\t\t\t}\n\t\t}\n\n\t\tconst choiceOK = ['fakeout', 'flamecharge', 'rapidspin'].every(m => !moves.has(m));\n\n\t\tif (counter.get('Physical') >= 4 && ability !== 'Serene Grace' && choiceOK) {\n\t\t\tconst scarfReqs = (\n\t\t\t\t(species.baseStats.atk >= 100 || ability === 'Huge Power') &&\n\t\t\t\tspecies.baseStats.spe >= 60 && species.baseStats.spe <= 108 &&\n\t\t\t\tability !== 'Speed Boost' && !counter.get('priority') &&\n\t\t\t\t['bounce', 'aerialace'].every(m => !moves.has(m))\n\t\t\t);\n\t\t\treturn (scarfReqs && this.randomChance(2, 3)) ? 'Choice Scarf' : 'Choice Band';\n\t\t}\n\t\tif (moves.has('sunnyday')) return 'Heat Rock';\n\t\tif (counter.get('Special') >= 4 || (counter.get('Special') >= 3 && moves.has('uturn'))) {\n\t\t\tconst scarfReqs = (\n\t\t\t\tspecies.baseStats.spa >= 100 &&\n\t\t\t\tspecies.baseStats.spe >= 60 && species.baseStats.spe <= 108 &&\n\t\t\t\tability !== 'Tinted Lens' && !counter.get('Physical')\n\t\t\t);\n\t\t\treturn (scarfReqs && this.randomChance(2, 3)) ? 'Choice Scarf' : 'Choice Specs';\n\t\t}\n\t\tif (counter.get('Physical') >= 4 && choiceOK) return 'Choice Band';\n\n\t\tif (\n\t\t\t((counter.get('Physical') >= 3 && moves.has('defog')) || (counter.get('Special') >= 3 && moves.has('healingwish'))) &&\n\t\t\t!counter.get('priority') && !moves.has('uturn')\n\t\t) return 'Choice Scarf';\n\n\t\t// Other items\n\t\tif (\n\t\t\tmoves.has('raindance') || moves.has('sunnyday') ||\n\t\t\t(ability === 'Speed Boost' && !counter.get('hazards'))\n\t\t) return 'Life Orb';\n\t\tif (\n\t\t\t['clearsmog', 'curse', 'haze', 'healbell', 'protect', 'sleeptalk'].some(m => moves.has(m)) &&\n\t\t\tability === 'Moody'\n\t\t) return 'Leftovers';\n\t}\n\n\tgetLowPriorityItem(\n\t\tability: string,\n\t\ttypes: Set<string>,\n\t\tmoves: Set<string>,\n\t\tabilities: string[],\n\t\tcounter: MoveCounter,\n\t\tteamDetails: RandomTeamsTypes.TeamDetails,\n\t\tspecies: Species,\n\t\tisLead: boolean,\n\t\tisDoubles: boolean\n\t): string | undefined {\n\t\tconst defensiveStatTotal = species.baseStats.hp + species.baseStats.def + species.baseStats.spd;\n\n\t\tif (\n\t\t\tisLead &&\n\t\t\tability !== 'Sturdy' && !moves.has('substitute') &&\n\t\t\t!counter.get('drain') && !counter.get('recoil') && !counter.get('recovery') &&\n\t\t\t((defensiveStatTotal <= 250 && counter.get('hazards')) || defensiveStatTotal <= 210)\n\t\t) return 'Focus Sash';\n\t\tif (\n\t\t\tcounter.damagingMoves.size >= 3 &&\n\t\t\t!counter.get('damage') &&\n\t\t\tability !== 'Sturdy' &&\n\t\t\t(species.baseStats.spe >= 90 || !moves.has('voltswitch')) &&\n\t\t\t['foulplay', 'rapidspin', 'substitute', 'uturn'].every(m => !moves.has(m)) && (\n\t\t\t\tcounter.get('speedsetup') ||\n\t\t\t\t// No Dynamax Buzzwole doesn't want Life Orb with Bulk Up + 3 attacks\n\t\t\t\t(counter.get('drain') && moves.has('roost')) ||\n\t\t\t\tmoves.has('trickroom') || moves.has('psystrike') ||\n\t\t\t\t(species.baseStats.spe > 40 && defensiveStatTotal < 275)\n\t\t\t)\n\t\t) return 'Life Orb';\n\t\tif (\n\t\t\tcounter.damagingMoves.size >= 4 &&\n\t\t\t!counter.get('Dragon') && !counter.get('Normal')\n\t\t) {\n\t\t\treturn 'Expert Belt';\n\t\t}\n\t\tif (\n\t\t\t!moves.has('substitute') &&\n\t\t\t(moves.has('dragondance') || moves.has('swordsdance')) &&\n\t\t\t(moves.has('outrage') || (\n\t\t\t\t['Bug', 'Fire', 'Ground', 'Normal', 'Poison'].every(type => !types.has(type)) &&\n\t\t\t\tability !== 'Storm Drain'\n\t\t\t))\n\t\t) return 'Lum Berry';\n\t}\n\n\tshouldCullMove(\n\t\tmove: Move,\n\t\ttypes: Set<string>,\n\t\tmoves: Set<string>,\n\t\tabilities: string[],\n\t\tcounter: MoveCounter,\n\t\tmovePool: string[],\n\t\tteamDetails: RandomTeamsTypes.TeamDetails,\n\t\tspecies: Species,\n\t\tisLead: boolean,\n\t\tisDoubles: boolean,\n\t): { cull: boolean, isSetup?: boolean } {\n\t\tif (isDoubles && species.baseStats.def >= 140 && movePool.includes('bodypress')) {\n\t\t\t// In Doubles, Pok\u00E9mon with Defense stats >= 140 should always have body press\n\t\t\treturn { cull: true };\n\t\t}\n\t\tif (species.id === 'entei' && movePool.includes('extremespeed')) {\n\t\t\treturn { cull: true };\n\t\t}\n\t\t// Spore is really, really good and should be forced onto all sets.\n\t\t// zzzzzz\n\t\t// Substitute is a hardcode for Breloom.\n\t\tif (movePool.includes('spore') && move.id !== 'substitute') {\n\t\t\treturn { cull: true };\n\t\t}\n\n\t\tconst hasRestTalk = moves.has('rest') && moves.has('sleeptalk');\n\n\t\t// Reject moves that need support\n\t\tswitch (move.id) {\n\t\tcase 'fly':\n\t\t\treturn { cull: !types.has(move.type) && !counter.setupType && !!counter.get('Status') };\n\t\tcase 'healbell':\n\t\t\treturn { cull: movePool.includes('protect') || movePool.includes('wish') };\n\t\tcase 'fireblast':\n\t\t\t// Special case for Togekiss, which always wants Aura Sphere\n\t\t\treturn { cull: abilities.includes('Serene Grace') && (!moves.has('trick') || counter.get('Status') > 1) };\n\t\tcase 'firepunch':\n\t\t\t// Special case for Darmanitan-Zen-Galar, which doesn't always want Fire Punch\n\t\t\treturn { cull: moves.has('earthquake') && movePool.includes('substitute') };\n\t\tcase 'flamecharge':\n\t\t\treturn { cull: movePool.includes('swordsdance') };\n\t\tcase 'focuspunch':\n\t\t\treturn { cull: !moves.has('substitute') };\n\t\tcase 'rest':\n\t\t\tconst bulkySetup = !moves.has('sleeptalk') && ['bulkup', 'calmmind', 'coil', 'curse'].some(m => movePool.includes(m));\n\t\t\t// Registeel would otherwise get Curse sets without Rest, which are very bad generally\n\t\t\treturn { cull: species.id !== 'registeel' && (movePool.includes('sleeptalk') || bulkySetup) };\n\t\tcase 'sleeptalk':\n\t\t\t// Milotic always wants RestTalk\n\t\t\tif (species.id === 'milotic') return { cull: false };\n\t\t\tif (moves.has('stealthrock') || !moves.has('rest')) return { cull: true };\n\t\t\tif (movePool.length > 1 && !abilities.includes('Contrary')) {\n\t\t\t\tconst rest = movePool.indexOf('rest');\n\t\t\t\tif (rest >= 0) this.fastPop(movePool, rest);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'storedpower':\n\t\t\treturn { cull: !counter.setupType };\n\t\tcase 'switcheroo': case 'trick':\n\t\t\t// We cull Switcheroo + Fake Out because Switcheroo is often used with a Choice item\n\t\t\treturn { cull: counter.get('Physical') + counter.get('Special') < 3 || moves.has('rapidspin') || moves.has('fakeout') };\n\t\tcase 'trickroom':\n\t\t\tconst webs = !!teamDetails.stickyWeb;\n\t\t\treturn { cull:\n\t\t\t\tisLead || webs || !!counter.get('speedsetup') ||\n\t\t\t\tcounter.damagingMoves.size < 2 || movePool.includes('nastyplot'),\n\t\t\t};\n\n\t\t// Set up once and only if we have the moves for it\n\t\tcase 'bellydrum': case 'bulkup': case 'coil': case 'curse': case 'dragondance': case 'honeclaws': case 'swordsdance':\n\t\t\tif (counter.setupType !== 'Physical') return { cull: true }; // if we're not setting up physically this is pointless\n\t\t\tif (counter.get('Physical') + counter.get('physicalpool') < 2 && !hasRestTalk) return { cull: true };\n\t\t\tif (move.id === 'swordsdance' && moves.has('dragondance')) return { cull: true }; // Dragon Dance is judged as better\n\n\t\t\treturn { cull: false, isSetup: true };\n\t\tcase 'calmmind': case 'nastyplot':\n\t\t\tif (counter.setupType !== 'Special') return { cull: true };\n\t\t\tif (\n\t\t\t\t(counter.get('Special') + counter.get('specialpool')) < 2 &&\n\t\t\t\t!hasRestTalk &&\n\t\t\t\t!(moves.has('wish') && moves.has('protect'))\n\t\t\t) return { cull: true };\n\t\t\tif (moves.has('healpulse') || move.id === 'calmmind' && moves.has('trickroom')) return { cull: true };\n\t\t\treturn { cull: false, isSetup: true };\n\t\tcase 'quiverdance':\n\t\t\treturn { cull: false, isSetup: true };\n\t\tcase 'shellsmash': case 'workup':\n\t\t\tif (counter.setupType !== 'Mixed') return { cull: true };\n\t\t\tif (counter.damagingMoves.size + counter.get('physicalpool') + counter.get('specialpool') < 2) return { cull: true };\n\t\t\treturn { cull: false, isSetup: true };\n\t\tcase 'agility': case 'autotomize': case 'rockpolish':\n\t\t\tif (counter.damagingMoves.size < 2 || moves.has('rest')) return { cull: true };\n\t\t\tif (movePool.includes('calmmind') || movePool.includes('nastyplot')) return { cull: true };\n\t\t\treturn { cull: false, isSetup: !counter.setupType };\n\n\t\t// Bad after setup\n\t\tcase 'counter': case 'reversal':\n\t\t\t// Counter: special case for Alakazam, which doesn't want Counter + Nasty Plot\n\t\t\treturn { cull: !!counter.setupType };\n\t\tcase 'bulletpunch': case 'extremespeed': case 'rockblast':\n\t\t\treturn { cull: (\n\t\t\t\t!!counter.get('speedsetup') ||\n\t\t\t\t(!isDoubles && moves.has('dragondance')) ||\n\t\t\t\tcounter.damagingMoves.size < 2\n\t\t\t) };\n\t\tcase 'closecombat': case 'flashcannon':\n\t\t\tconst substituteCullCondition = (\n\t\t\t\t(moves.has('substitute') && !types.has('Fighting')) ||\n\t\t\t\t(moves.has('toxic') && movePool.includes('substitute'))\n\t\t\t);\n\t\t\tconst preferHJKOverCCCullCondition = (\n\t\t\t\tmove.id === 'closecombat' &&\n\t\t\t\t!counter.setupType &&\n\t\t\t\t(moves.has('highjumpkick') || movePool.includes('highjumpkick'))\n\t\t\t);\n\t\t\treturn { cull: substituteCullCondition || preferHJKOverCCCullCondition };\n\t\tcase 'defog':\n\t\t\treturn { cull: (\n\t\t\t\t!!counter.setupType ||\n\t\t\t\t['healbell', 'toxicspikes', 'stealthrock', 'spikes'].some(m => moves.has(m)) ||\n\t\t\t\t!!teamDetails.defog\n\t\t\t) };\n\t\tcase 'fakeout':\n\t\t\treturn { cull: !!counter.setupType || ['protect', 'rapidspin', 'substitute', 'uturn'].some(m => moves.has(m)) };\n\t\tcase 'glare': case 'icywind': case 'tailwind': case 'waterspout':\n\t\t\treturn { cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('rest') };\n\t\tcase 'healingwish': case 'memento':\n\t\t\treturn { cull: !!counter.setupType || !!counter.get('recovery') || moves.has('substitute') || moves.has('uturn') };\n\t\tcase 'partingshot':\n\t\t\treturn { cull: !!counter.get('speedsetup') || moves.has('bulkup') || moves.has('uturn') };\n\t\tcase 'protect':\n\t\t\tif (!isDoubles && ((counter.setupType && !moves.has('wish')) || moves.has('rest'))) return { cull: true };\n\t\t\tif (\n\t\t\t\t!isDoubles &&\n\t\t\t\tcounter.get('Status') < 2 &&\n\t\t\t\t['Guts', 'Quick Feet', 'Speed Boost', 'Moody'].every(m => !abilities.includes(m))\n\t\t\t) return { cull: true };\n\t\t\tif (movePool.includes('leechseed') || (movePool.includes('toxic') && !moves.has('wish'))) return { cull: true };\n\t\t\tif (isDoubles && (\n\t\t\t\t['bellydrum', 'fakeout', 'shellsmash', 'spore'].some(m => movePool.includes(m)) ||\n\t\t\t\tmoves.has('tailwind') || moves.has('waterspout')\n\t\t\t)) return { cull: true };\n\t\t\treturn { cull: false };\n\t\tcase 'rapidspin':\n\t\t\tconst setup = ['curse', 'nastyplot', 'shellsmash'].some(m => moves.has(m));\n\t\t\treturn { cull: !!teamDetails.rapidSpin || setup || (!!counter.setupType && counter.get('Fighting') >= 2) };\n\t\tcase 'roar':\n\t\t\t// for Blastoise\n\t\t\treturn { cull: moves.has('shellsmash') };\n\t\tcase 'shadowsneak':\n\t\t\tconst sneakIncompatible = ['substitute', 'trickroom', 'toxic'].some(m => moves.has(m));\n\t\t\treturn { cull: hasRestTalk || sneakIncompatible || counter.setupType === 'Special' };\n\t\tcase 'spikes':\n\t\t\treturn { cull: !!counter.setupType || (!!teamDetails.spikes && teamDetails.spikes > 1) };\n\t\tcase 'stealthrock':\n\t\t\treturn { cull:\n\t\t\t\t!!counter.setupType ||\n\t\t\t\t!!counter.get('speedsetup') ||\n\t\t\t\t!!teamDetails.stealthRock ||\n\t\t\t\t['rest', 'substitute', 'trickroom', 'teleport'].some(m => moves.has(m)),\n\t\t\t};\n\t\tcase 'stickyweb':\n\t\t\treturn { cull: !!teamDetails.stickyWeb };\n\t\tcase 'taunt':\n\t\t\treturn { cull: moves.has('encore') || moves.has('nastyplot') || moves.has('swordsdance') };\n\t\tcase 'thunderwave': case 'voltswitch':\n\t\t\tconst cullInDoubles = isDoubles && (moves.has('electroweb') || moves.has('nuzzle'));\n\t\t\treturn { cull: (\n\t\t\t\t!!counter.setupType ||\n\t\t\t\t!!counter.get('speedsetup') ||\n\t\t\t\tmoves.has('shiftgear') ||\n\t\t\t\tmoves.has('raindance') ||\n\t\t\t\tcullInDoubles\n\t\t\t) };\n\t\tcase 'toxic':\n\t\t\treturn { cull: !!counter.setupType || ['sludgewave', 'thunderwave', 'willowisp'].some(m => moves.has(m)) };\n\t\tcase 'toxicspikes':\n\t\t\treturn { cull: !!counter.setupType || !!teamDetails.toxicSpikes };\n\t\tcase 'uturn':\n\t\t\tconst bugSwordsDanceCase = types.has('Bug') && counter.get('recovery') && moves.has('swordsdance');\n\t\t\treturn { cull: (\n\t\t\t\t!!counter.get('speedsetup') ||\n\t\t\t\t(counter.setupType && !bugSwordsDanceCase) ||\n\t\t\t\t(abilities.includes('Speed Boost') && moves.has('protect')) ||\n\t\t\t\t(isDoubles && moves.has('leechlife'))\n\t\t\t) };\n\n\t\t/**\n\t\t * Ineffective to have both moves together\n\t\t *\n\t\t * These are sorted in order of:\n\t\t * Normal>Fire>Water>Electric>Grass>Ice>Fighting>Poison>Ground>Flying>Psychic>Bug>Rock>Ghost>Dragon>Dark>Fairy\n\t\t * and then subsorted alphabetically.\n\t\t * This type order is arbitrary and referenced from https://pokemondb.net/type.\n\t\t */\n\t\tcase 'explosion':\n\t\t\tconst otherMoves = ['curse', 'stompingtantrum', 'painsplit', 'wish'].some(m => moves.has(m));\n\t\t\treturn { cull: !!counter.get('speedsetup') || !!counter.get('recovery') || otherMoves };\n\t\tcase 'quickattack':\n\t\t\treturn { cull: !!counter.get('speedsetup') || (types.has('Rock') && !!counter.get('Status')) };\n\t\tcase 'flamethrower': case 'lavaplume':\n\t\t\tconst otherFireMoves = ['heatwave', 'overheat'].some(m => moves.has(m));\n\t\t\treturn { cull: (moves.has('fireblast') && counter.setupType !== 'Physical') || otherFireMoves };\n\t\tcase 'overheat':\n\t\t\treturn { cull: moves.has('flareblitz') || (isDoubles && moves.has('calmmind')) };\n\t\tcase 'aquatail':\n\t\t\treturn { cull: moves.has('aquajet') || !!counter.get('Status') };\n\t\tcase 'hydropump':\n\t\t\treturn { cull: moves.has('scald') && (\n\t\t\t\t(counter.get('Special') < 4 && !moves.has('uturn')) ||\n\t\t\t\t(species.types.length > 1 && counter.get('stab') < 3)\n\t\t\t) };\n\t\tcase 'gigadrain':\n\t\t\treturn { cull: types.has('Poison') && !counter.get('Poison') };\n\t\tcase 'leafstorm':\n\t\t\tconst leafBladePossible = movePool.includes('leafblade') || moves.has('leafblade');\n\t\t\treturn { cull:\n\t\t\t\t(counter.setupType === 'Physical' && leafBladePossible) ||\n\t\t\t\t(moves.has('gigadrain') && !!counter.get('Status')) ||\n\t\t\t\t(isDoubles && moves.has('energyball')),\n\t\t\t};\n\t\tcase 'freezedry':\n\t\t\tconst betterIceMove = (\n\t\t\t\t(moves.has('blizzard') && !!counter.setupType) ||\n\t\t\t\t(moves.has('icebeam') && counter.get('Special') < 4)\n\t\t\t);\n\t\t\tconst preferThunderWave = movePool.includes('thunderwave') && types.has('Electric');\n\t\t\treturn { cull: betterIceMove || preferThunderWave || movePool.includes('bodyslam') };\n\t\t// Milotic always wants RestTalk\n\t\tcase 'icebeam':\n\t\t\treturn { cull: moves.has('dragontail') };\n\t\tcase 'bodypress':\n\t\t\tconst pressIncompatible = ['shellsmash', 'mirrorcoat', 'whirlwind'].some(m => moves.has(m));\n\t\t\treturn { cull: pressIncompatible || counter.setupType === 'Special' };\n\t\tcase 'drainpunch':\n\t\t\treturn { cull: moves.has('closecombat') || (!types.has('Fighting') && movePool.includes('swordsdance')) };\n\t\tcase 'facade':\n\t\t\t// Prefer Dynamic Punch when it can be a guaranteed-hit STAB move (mostly for Machamp)\n\t\t\treturn { cull: moves.has('dynamicpunch') && species.types.includes('Fighting') && abilities.includes('No Guard') };\n\t\tcase 'focusblast':\n\t\t\t// Special cases for Blastoise and Regice; Blastoise wants Shell Smash, and Regice wants Thunderbolt\n\t\t\treturn { cull: movePool.includes('shellsmash') || hasRestTalk };\n\t\tcase 'superpower':\n\t\t\treturn {\n\t\t\t\tcull: moves.has('hydropump') ||\n\t\t\t\t\t(counter.get('Physical') >= 4 && movePool.includes('uturn')) ||\n\t\t\t\t\t(moves.has('substitute') && !abilities.includes('Contrary')),\n\t\t\t\tisSetup: abilities.includes('Contrary'),\n\t\t\t};\n\t\tcase 'poisonjab':\n\t\t\treturn { cull: !types.has('Poison') && counter.get('Status') >= 2 };\n\t\tcase 'earthquake':\n\t\t\tconst doublesCull = moves.has('earthpower') || moves.has('highhorsepower');\n\t\t\tconst subToxicPossible = moves.has('substitute') && movePool.includes('toxic');\n\t\t\treturn { cull: (isDoubles && doublesCull) || subToxicPossible || moves.has('bonemerang') };\n\t\tcase 'airslash':\n\t\t\treturn { cull: hasRestTalk || counter.setupType === 'Physical' };\n\t\tcase 'hurricane':\n\t\t\treturn { cull: counter.setupType === 'Physical' };\n\t\tcase 'futuresight':\n\t\t\treturn { cull: moves.has('psyshock') || moves.has('trick') || movePool.includes('teleport') };\n\t\tcase 'psychic':\n\t\t\treturn { cull: moves.has('psyshock') && (!!counter.setupType || isDoubles) };\n\t\tcase 'psyshock':\n\t\t\treturn { cull: moves.has('psychic') };\n\t\tcase 'bugbuzz':\n\t\t\treturn { cull: moves.has('uturn') && !counter.setupType && !abilities.includes('Tinted Lens') };\n\t\tcase 'leechlife':\n\t\t\treturn { cull:\n\t\t\t\t(isDoubles && moves.has('lunge')) ||\n\t\t\t\t(moves.has('uturn') && !counter.setupType) ||\n\t\t\t\tmovePool.includes('spikes'),\n\t\t\t};\n\t\tcase 'stoneedge':\n\t\t\tconst machampCullCondition = species.id === 'machamp' && !moves.has('dynamicpunch');\n\t\t\tconst rockSlidePlusStatusPossible = counter.get('Status') && movePool.includes('rockslide');\n\t\t\tconst otherRockMove = moves.has('rockblast') || moves.has('rockslide');\n\t\t\tconst lucarioCull = species.id === 'lucario' && !!counter.setupType;\n\t\t\treturn { cull: machampCullCondition || (!isDoubles && rockSlidePlusStatusPossible) || otherRockMove || lucarioCull };\n\t\tcase 'shadowball':\n\t\t\treturn { cull:\n\t\t\t\t(isDoubles && moves.has('phantomforce')) ||\n\t\t\t\t(!types.has('Ghost') && movePool.includes('focusblast')),\n\t\t\t};\n\t\tcase 'shadowclaw':\n\t\t\treturn { cull: types.has('Steel') && moves.has('shadowsneak') && counter.get('Physical') < 4 };\n\t\tcase 'dragonpulse': case 'spacialrend':\n\t\t\treturn { cull: moves.has('dracometeor') && counter.get('Special') < 4 };\n\t\tcase 'darkpulse':\n\t\t\tconst pulseIncompatible = ['foulplay', 'knockoff'].some(m => moves.has(m)) || (\n\t\t\t\tspecies.id === 'shiftry' && (moves.has('defog') || moves.has('suckerpunch'))\n\t\t\t);\n\t\t\t// Special clause to prevent bugged Shiftry sets with Sucker Punch + Nasty Plot\n\t\t\tconst shiftryCase = movePool.includes('nastyplot') && !moves.has('defog');\n\t\t\treturn { cull: pulseIncompatible && !shiftryCase && counter.setupType !== 'Special' };\n\t\tcase 'suckerpunch':\n\t\t\treturn { cull:\n\t\t\t\tmoves.has('rest') ||\n\t\t\t\tcounter.damagingMoves.size < 2 ||\n\t\t\t\t(counter.setupType === 'Special') ||\n\t\t\t\t(counter.get('Dark') > 1 && !types.has('Dark')),\n\t\t\t};\n\t\tcase 'dazzlinggleam':\n\t\t\treturn { cull: ['moonblast', 'petaldance'].some(m => moves.has(m)) };\n\n\t\t// Status:\n\t\tcase 'bodyslam': case 'clearsmog':\n\t\t\tconst toxicCullCondition = moves.has('toxic') && !types.has('Normal');\n\t\t\treturn { cull: moves.has('sludgebomb') || moves.has('trick') || movePool.includes('recover') || toxicCullCondition };\n\t\tcase 'willowisp': case 'yawn':\n\t\t\t// Swords Dance is a special case for Rapidash\n\t\t\treturn { cull: moves.has('thunderwave') || moves.has('toxic') || moves.has('swordsdance') };\n\t\tcase 'painsplit': case 'recover': case 'synthesis':\n\t\t\treturn { cull: moves.has('rest') || moves.has('wish') || (move.id === 'synthesis' && moves.has('gigadrain')) };\n\t\tcase 'roost':\n\t\t\treturn { cull:\n\t\t\t\tmoves.has('throatchop') ||\n\t\t\t\t// Special cases for Salamence, Dynaless Dragonite, and Scizor to help prevent sets with poor coverage or no setup.\n\t\t\t\t(moves.has('dualwingbeat') && (moves.has('outrage') || species.id === 'scizor')),\n\t\t\t};\n\t\tcase 'reflect': case 'lightscreen':\n\t\t\treturn { cull: !!teamDetails.screens };\n\t\tcase 'slackoff':\n\t\t\t// Special case to prevent Scaldless Slowking\n\t\t\treturn { cull: species.id === 'slowking' && !moves.has('scald') };\n\t\tcase 'substitute':\n\t\t\tconst moveBasedCull = (\n\t\t\t\t// Breloom is OK with Substitute + Swords Dance (for subpunch sets)\n\t\t\t\tspecies.id !== 'breloom' &&\n\t\t\t\t['bulkup', 'nastyplot', 'painsplit', 'roost', 'swordsdance'].some(m => movePool.includes(m))\n\t\t\t);\n\t\t\tconst shayminCase = abilities.includes('Serene Grace') && movePool.includes('airslash') && !moves.has('airslash');\n\t\t\treturn { cull: moves.has('rest') || moveBasedCull || shayminCase };\n\t\tcase 'helpinghand':\n\t\t\t// Special case for Shuckle in Doubles, which doesn't want sets with no method to harm foes\n\t\t\treturn { cull: moves.has('acupressure') };\n\t\tcase 'wideguard':\n\t\t\treturn { cull: moves.has('protect') };\n\t\tcase 'grassknot':\n\t\t\t// Special case for Raichu\n\t\t\treturn { cull: moves.has('surf') };\n\t\t}\n\n\t\treturn { cull: false };\n\t}\n\n\tshouldCullAbility(\n\t\tability: string,\n\t\ttypes: Set<string>,\n\t\tmoves: Set<string>,\n\t\tabilities: string[],\n\t\tcounter: MoveCounter,\n\t\tmovePool: string[],\n\t\tteamDetails: RandomTeamsTypes.TeamDetails,\n\t\tspecies: Species,\n\t\tpreferredType: string,\n\t\trole: RandomTeamsTypes.Role,\n\t\tisDoubles: boolean,\n\t): boolean {\n\t\tif ([\n\t\t\t'Flare Boost', 'Hydration', 'Ice Body', 'Immunity', 'Insomnia', 'Rain Dish',\n\t\t\t'Snow Cloak', 'Steadfast',\n\t\t].includes(ability)) return true;\n\n\t\tswitch (ability) {\n\t\t// Abilities which are primarily useful for certain moves\n\t\tcase 'Contrary': case 'Serene Grace': case 'Skill Link':\n\t\t\treturn !counter.get(ability.toLowerCase().replace(/\\s/g, ''));\n\t\tcase 'Analytic':\n\t\t\treturn (moves.has('rapidspin') || species.nfe || isDoubles);\n\t\tcase 'Blaze':\n\t\t\treturn (isDoubles && abilities.includes('Solar Power')) || (!isDoubles && species.id === 'charizard');\n\t\tcase 'Chlorophyll':\n\t\t\treturn (species.baseStats.spe > 100 || !counter.get('Fire') && !moves.has('sunnyday') && !teamDetails.sun);\n\t\tcase 'Cloud Nine':\n\t\t\treturn species.id !== 'golduck';\n\t\tcase 'Competitive':\n\t\t\treturn (counter.get('Special') < 2 || (moves.has('rest') && moves.has('sleeptalk')));\n\t\tcase 'Compound Eyes': case 'No Guard':\n\t\t\treturn !counter.get('inaccurate');\n\t\tcase 'Cursed Body':\n\t\t\treturn abilities.includes('Infiltrator');\n\t\tcase 'Defiant':\n\t\t\treturn !counter.get('Physical');\n\t\tcase 'Download':\n\t\t\treturn (counter.damagingMoves.size < 3 || moves.has('trick'));\n\t\tcase 'Early Bird':\n\t\t\treturn (types.has('Grass') && isDoubles);\n\t\tcase 'Flash Fire':\n\t\t\treturn (this.dex.getEffectiveness('Fire', species) < -1 || abilities.includes('Drought'));\n\t\tcase 'Gluttony':\n\t\t\treturn !moves.has('bellydrum');\n\t\tcase 'Guts':\n\t\t\treturn (!moves.has('facade') && !moves.has('sleeptalk') && !species.nfe ||\n\t\t\t\tabilities.includes('Quick Feet') && !!counter.setupType);\n\t\tcase 'Harvest':\n\t\t\treturn (abilities.includes('Frisk') && !isDoubles);\n\t\tcase 'Hustle': case 'Inner Focus':\n\t\t\treturn (counter.get('Physical') < 2 || abilities.includes('Iron Fist'));\n\t\tcase 'Infiltrator':\n\t\t\treturn (moves.has('rest') && moves.has('sleeptalk')) || (isDoubles && abilities.includes('Clear Body'));\n\t\tcase 'Intimidate':\n\t\t\tif (species.id === 'salamence' && moves.has('dragondance')) return true;\n\t\t\treturn ['bodyslam', 'bounce', 'rockclimb', 'tripleaxel'].some(m => moves.has(m));\n\t\tcase 'Iron Fist':\n\t\t\treturn (counter.get('ironfist') < 2 || moves.has('dynamicpunch'));\n\t\tcase 'Justified':\n\t\t\treturn (isDoubles && abilities.includes('Inner Focus'));\n\t\tcase 'Lightning Rod':\n\t\t\treturn (species.types.includes('Ground') || counter.setupType === 'Physical');\n\t\tcase 'Limber':\n\t\t\treturn species.types.includes('Electric') || moves.has('facade');\n\t\tcase 'Mold Breaker':\n\t\t\treturn (\n\t\t\t\tabilities.includes('Adaptability') || abilities.includes('Scrappy') || (abilities.includes('Unburden') && !!counter.setupType) ||\n\t\t\t\t(abilities.includes('Sheer Force') && !!counter.get('sheerforce'))\n\t\t\t);\n\t\tcase 'Moody':\n\t\t\treturn !!counter.setupType && abilities.includes('Simple');\n\t\tcase 'Moxie':\n\t\t\treturn (counter.get('Physical') < 2 || moves.has('stealthrock') || moves.has('defog'));\n\t\tcase 'Overgrow':\n\t\t\treturn !counter.get('Grass');\n\t\tcase 'Own Tempo':\n\t\t\treturn !moves.has('petaldance');\n\t\tcase 'Prankster':\n\t\t\treturn !counter.get('Status');\n\t\tcase 'Pressure':\n\t\t\treturn (!!counter.setupType || counter.get('Status') < 2 || isDoubles);\n\t\tcase 'Quick Feet':\n\t\t\treturn !moves.has('facade');\n\t\tcase 'Reckless':\n\t\t\treturn !counter.get('recoil') || moves.has('curse');\n\t\tcase 'Rock Head':\n\t\t\treturn !counter.get('recoil');\n\t\tcase 'Sand Force': case 'Sand Veil':\n\t\t\treturn !teamDetails.sand;\n\t\tcase 'Sand Rush':\n\t\t\treturn (!teamDetails.sand && (!counter.setupType || !counter.get('Rock') || moves.has('rapidspin')));\n\t\tcase 'Scrappy':\n\t\t\treturn (moves.has('earthquake') && species.id === 'miltank');\n\t\tcase 'Sheer Force':\n\t\t\treturn (!counter.get('sheerforce') || abilities.includes('Guts'));\n\t\tcase 'Shell Armor':\n\t\t\treturn (species.id === 'omastar' && (moves.has('spikes') || moves.has('stealthrock')));\n\t\tcase 'Sniper':\n\t\t\treturn counter.get('Water') > 1 && !moves.has('focusenergy');\n\t\tcase 'Solar Power':\n\t\t\treturn (!teamDetails.sun || abilities.includes('Harvest'));\n\t\tcase 'Speed Boost':\n\t\t\treturn moves.has('uturn');\n\t\tcase 'Sturdy':\n\t\t\treturn (moves.has('bulkup') || !!counter.get('recoil') || abilities.includes('Solid Rock'));\n\t\tcase 'Swarm':\n\t\t\treturn (!counter.get('Bug') || !!counter.get('recovery'));\n\t\tcase 'Swift Swim':\n\t\t\tconst neverWantsSwim = !moves.has('raindance') && [\n\t\t\t\t'Intimidate', 'Rock Head', 'Water Absorb',\n\t\t\t].some(m => abilities.includes(m));\n\t\t\tconst noSwimIfNoRain = !moves.has('raindance') && [\n\t\t\t\t'Cloud Nine', 'Lightning Rod', 'Intimidate', 'Rock Head', 'Sturdy', 'Water Absorb', 'Water Veil', 'Weak Armor',\n\t\t\t].some(m => abilities.includes(m));\n\t\t\treturn teamDetails.rain ? neverWantsSwim : noSwimIfNoRain;\n\t\tcase 'Synchronize':\n\t\t\treturn counter.get('Status') < 3;\n\t\tcase 'Technician':\n\t\t\treturn (\n\t\t\t\t!counter.get('technician') ||\n\t\t\t\tmoves.has('tailslap') ||\n\t\t\t\tabilities.includes('Punk Rock')\n\t\t\t);\n\t\tcase 'Tinted Lens':\n\t\t\treturn (\n\t\t\t\t// For Butterfree\n\t\t\t\t(moves.has('hurricane') && abilities.includes('Compound Eyes')) ||\n\t\t\t\t(counter.get('Status') > 2 && !counter.setupType) ||\n\t\t\t\t// For Yanmega\n\t\t\t\tmoves.has('protect')\n\t\t\t);\n\t\tcase 'Unaware':\n\t\t\treturn species.id === 'bibarel';\n\t\tcase 'Unburden':\n\t\t\treturn (\n\t\t\t\tabilities.includes('Prankster') ||\n\t\t\t\t// intended for Hitmonlee\n\t\t\t\tabilities.includes('Reckless') ||\n\t\t\t\t!counter.setupType && !isDoubles\n\t\t\t);\n\t\tcase 'Volt Absorb':\n\t\t\treturn (this.dex.getEffectiveness('Electric', species) < -1);\n\t\tcase 'Water Absorb':\n\t\t\treturn (\n\t\t\t\tmoves.has('raindance') ||\n\t\t\t\t['Drizzle', 'Strong Jaw', 'Unaware', 'Volt Absorb'].some(abil => abilities.includes(abil))\n\t\t\t);\n\t\tcase 'Weak Armor':\n\t\t\treturn (\n\t\t\t\tspecies.id === 'skarmory' ||\n\t\t\t\tmoves.has('shellsmash') || moves.has('rapidspin')\n\t\t\t);\n\t\t}\n\n\t\treturn false;\n\t}\n}\n\nexport default RandomBDSPTeams;\n"], | |
"mappings": "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", | |
"names": [] | |
} | |