From 6397bfddb3db4e916dd792e03c43355f7366e8ab Mon Sep 17 00:00:00 2001 From: ACakeWearingAHat <45981036+ACakeWearingAHat@users.noreply.github.com> Date: Tue, 1 Jul 2025 02:25:58 -0500 Subject: [PATCH] Randomized format set updates (#11232) * Randomized format set updates * Update doubles-sets.json --------- Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com> --- data/random-battles/gen3/sets.json | 5 ++ data/random-battles/gen5/sets.json | 7 ++- data/random-battles/gen6/sets.json | 10 +++- data/random-battles/gen7/sets.json | 10 +++- data/random-battles/gen9/doubles-sets.json | 66 ++++++++++++++++------ data/random-battles/gen9/sets.json | 28 +++------ data/random-battles/gen9/teams.ts | 22 ++++---- data/random-battles/gen9cap/sets.json | 22 ++++---- 8 files changed, 106 insertions(+), 64 deletions(-) diff --git a/data/random-battles/gen3/sets.json b/data/random-battles/gen3/sets.json index 9740b4009b..282362e509 100644 --- a/data/random-battles/gen3/sets.json +++ b/data/random-battles/gen3/sets.json @@ -2406,6 +2406,11 @@ "role": "Berry Sweeper", "movepool": ["bulkup", "reversal", "shadowball", "substitute"], "abilities": ["Pure Power"] + }, + { + "role": "Wallbreaker", + "movepool": ["brickbreak", "doubleedge", "rockslide", "shadowball"], + "abilities": ["Pure Power"] } ] }, diff --git a/data/random-battles/gen5/sets.json b/data/random-battles/gen5/sets.json index a6132d3020..909da9845e 100644 --- a/data/random-battles/gen5/sets.json +++ b/data/random-battles/gen5/sets.json @@ -1314,7 +1314,12 @@ "sets": [ { "role": "Bulky Support", - "movepool": ["earthquake", "rapidspin", "spikes", "stealthrock", "toxic", "voltswitch"], + "movepool": ["earthquake", "rapidspin", "spikes", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "rapidspin", "stealthrock", "toxicspikes", "voltswitch"], "abilities": ["Sturdy"] } ] diff --git a/data/random-battles/gen6/sets.json b/data/random-battles/gen6/sets.json index 79b5aa6b56..002dc56997 100644 --- a/data/random-battles/gen6/sets.json +++ b/data/random-battles/gen6/sets.json @@ -1413,8 +1413,13 @@ "sets": [ { "role": "Bulky Support", - "movepool": ["gyroball", "rapidspin", "spikes", "stealthrock", "toxic", "voltswitch"], + "movepool": ["gyroball", "rapidspin", "spikes", "stealthrock", "toxic"], "abilities": ["Sturdy"] + }, + { + "role": "Bulky Support", + "movepool": ["gyroball", "rapidspin", "stealthrock", "toxicspikes", "voltswitch"], + "abilities": ["Sturdy"] } ] }, @@ -4897,7 +4902,8 @@ { "role": "Fast Attacker", "movepool": ["bulletseed", "knockoff", "rockblast", "tailslap", "uturn"], - "abilities": ["Skill Link"] + "abilities": ["Skill Link"], + "preferredTypes": ["Grass"] } ] }, diff --git a/data/random-battles/gen7/sets.json b/data/random-battles/gen7/sets.json index 4964f6b5c2..1aeedb91a8 100644 --- a/data/random-battles/gen7/sets.json +++ b/data/random-battles/gen7/sets.json @@ -1629,8 +1629,13 @@ "sets": [ { "role": "Bulky Support", - "movepool": ["gyroball", "rapidspin", "spikes", "stealthrock", "toxic", "voltswitch"], + "movepool": ["gyroball", "rapidspin", "spikes", "stealthrock", "toxic"], "abilities": ["Sturdy"] + }, + { + "role": "Bulky Support", + "movepool": ["gyroball", "rapidspin", "stealthrock", "toxicspikes", "voltswitch"], + "abilities": ["Sturdy"] } ] }, @@ -5269,7 +5274,8 @@ { "role": "Fast Attacker", "movepool": ["bulletseed", "knockoff", "rockblast", "tailslap", "uturn"], - "abilities": ["Skill Link"] + "abilities": ["Skill Link"], + "preferredTypes": ["Grass"] } ] }, diff --git a/data/random-battles/gen9/doubles-sets.json b/data/random-battles/gen9/doubles-sets.json index ede53d40e5..150b9e4505 100644 --- a/data/random-battles/gen9/doubles-sets.json +++ b/data/random-battles/gen9/doubles-sets.json @@ -167,7 +167,13 @@ "sets": [ { "role": "Doubles Wallbreaker", - "movepool": ["Flamethrower", "Heat Wave", "Overheat", "Protect", "Scorching Sands", "Solar Beam"], + "movepool": ["Heat Wave", "Overheat", "Solar Beam", "Weather Ball"], + "abilities": ["Drought"], + "teraTypes": ["Fire", "Grass"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Fire Blast", "Heat Wave", "Protect", "Solar Beam"], "abilities": ["Drought"], "teraTypes": ["Fire", "Grass"] } @@ -824,7 +830,7 @@ "level": 83, "sets": [ { - "role": "Doubles Bulky Attacker", + "role": "Doubles Support", "movepool": ["Brave Bird", "Freeze-Dry", "Ice Beam", "Icy Wind", "Protect", "Roost", "Tailwind"], "abilities": ["Pressure"], "teraTypes": ["Ground", "Steel"] @@ -1126,8 +1132,14 @@ "level": 93, "sets": [ { - "role": "Bulky Protect", - "movepool": ["Acrobatics", "Encore", "Pollen Puff", "Rage Powder", "Sleep Powder", "Strength Sap", "Tailwind"], + "role": "Doubles Support", + "movepool": ["Acrobatics", "Rage Powder", "Strength Sap", "Tailwind"], + "abilities": ["Infiltrator"], + "teraTypes": ["Steel"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Acrobatics", "Encore", "Sleep Powder", "Tailwind"], "abilities": ["Infiltrator"], "teraTypes": ["Steel"] } @@ -1183,7 +1195,7 @@ { "role": "Doubles Support", "movepool": ["Foul Play", "Helping Hand", "Moonlight", "Snarl", "Thunder Wave"], - "abilities": ["Synchronize"], + "abilities": ["Inner Focus"], "teraTypes": ["Poison"] } ] @@ -1915,9 +1927,15 @@ "sets": [ { "role": "Offensive Protect", - "movepool": ["Close Combat", "Facade", "Feint", "Knock Off", "Protect"], + "movepool": ["Facade", "Feint", "Knock Off", "Protect"], "abilities": ["Toxic Boost"], - "teraTypes": ["Normal"] + "teraTypes": ["Ghost", "Normal"] + }, + { + "role": "Doubles Fast Attacker", + "movepool": ["Close Combat", "Facade", "Knock Off", "Protect"], + "abilities": ["Toxic Boost"], + "teraTypes": ["Ghost", "Normal"] } ] }, @@ -3059,7 +3077,7 @@ "sets": [ { "role": "Offensive Protect", - "movepool": ["Dark Pulse", "Focus Blast", "Protect", "Sludge Bomb"], + "movepool": ["Dark Pulse", "Focus Blast", "Protect", "Sludge Bomb", "Substitute"], "abilities": ["Bad Dreams"], "teraTypes": ["Poison"] } @@ -3072,7 +3090,7 @@ "role": "Doubles Bulky Attacker", "movepool": ["Earth Power", "Protect", "Seed Flare", "Synthesis", "Tailwind"], "abilities": ["Natural Cure"], - "teraTypes": ["Grass", "Ground", "Steel"] + "teraTypes": ["Ground", "Steel"] } ] }, @@ -3745,8 +3763,8 @@ "level": 88, "sets": [ { - "role": "Doubles Bulky Attacker", - "movepool": ["Flash Cannon", "Freeze-Dry", "Haze", "Icy Wind", "Rapid Spin", "Recover"], + "role": "Doubles Support", + "movepool": ["Flash Cannon", "Freeze-Dry", "Icy Wind", "Recover"], "abilities": ["Levitate"], "teraTypes": ["Steel"] } @@ -3822,6 +3840,12 @@ "movepool": ["Foul Play", "Knock Off", "Roost", "Snarl", "Tailwind", "Taunt", "Toxic", "U-turn"], "abilities": ["Overcoat"], "teraTypes": ["Steel"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Brave Bird", "Knock Off", "Roost", "Tailwind"], + "abilities": ["Overcoat"], + "teraTypes": ["Steel"] } ] }, @@ -3870,7 +3894,7 @@ }, { "role": "Bulky Protect", - "movepool": ["Body Press", "Iron Defense", "Iron Head", "Protect"], + "movepool": ["Body Press", "Heavy Slam", "Iron Defense", "Protect"], "abilities": ["Justified"], "teraTypes": ["Flying", "Water"] } @@ -3998,10 +4022,10 @@ "level": 75, "sets": [ { - "role": "Doubles Wallbreaker", - "movepool": ["Earth Power", "Nasty Plot", "Protect", "Psychic", "Rock Slide", "Sandsear Storm", "Sludge Bomb"], + "role": "Offensive Protect", + "movepool": ["Earth Power", "Nasty Plot", "Protect", "Rock Slide", "Sandsear Storm", "Sludge Bomb"], "abilities": ["Sheer Force"], - "teraTypes": ["Ground", "Poison", "Psychic"] + "teraTypes": ["Ground", "Poison"] } ] }, @@ -5032,10 +5056,16 @@ "level": 81, "sets": [ { - "role": "Doubles Bulky Attacker", - "movepool": ["Brave Bird", "Iron Head", "Roost", "Tailwind", "U-turn"], + "role": "Doubles Support", + "movepool": ["Brave Bird", "Iron Head", "Roost", "Tailwind"], "abilities": ["Mirror Armor"], "teraTypes": ["Dragon"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Brave Bird", "Iron Defense", "Roost", "Tailwind"], + "abilities": ["Mirror Armor"], + "teraTypes": ["Fighting"] } ] }, @@ -5117,7 +5147,7 @@ "sets": [ { "role": "Bulky Protect", - "movepool": ["Brave Bird", "Protect", "Roost", "Surf", "Tailwind"], + "movepool": ["Brave Bird", "Protect", "Surf", "Tailwind"], "abilities": ["Gulp Missile"], "teraTypes": ["Ground"] } diff --git a/data/random-battles/gen9/sets.json b/data/random-battles/gen9/sets.json index bce859cd82..c4e9ef046f 100644 --- a/data/random-battles/gen9/sets.json +++ b/data/random-battles/gen9/sets.json @@ -2164,7 +2164,7 @@ "sets": [ { "role": "Wallbreaker", - "movepool": ["Earthquake", "Lava Plume", "Rapid Spin", "Solar Beam", "Stealth Rock", "Yawn"], + "movepool": ["Earthquake", "Fire Blast", "Lava Plume", "Rapid Spin", "Solar Beam", "Stealth Rock", "Yawn"], "abilities": ["Drought"], "teraTypes": ["Grass"] }, @@ -2198,15 +2198,9 @@ "sets": [ { "role": "Fast Attacker", - "movepool": ["Earthquake", "Outrage", "Stone Edge", "U-turn"], + "movepool": ["Dragon Dance", "Earthquake", "Outrage", "Stone Edge", "U-turn"], "abilities": ["Levitate"], "teraTypes": ["Ground", "Rock", "Steel"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Dragon Dance", "Earthquake", "Scale Shot", "Stone Edge"], - "abilities": ["Levitate"], - "teraTypes": ["Dragon", "Ground", "Rock", "Steel"] } ] }, @@ -4286,7 +4280,7 @@ "sets": [ { "role": "Fast Bulky Setup", - "movepool": ["Calm Mind", "Energy Ball", "Fire Blast", "Pain Split", "Shadow Ball", "Substitute", "Will-O-Wisp"], + "movepool": ["Calm Mind", "Energy Ball", "Fire Blast", "Flame Charge", "Pain Split", "Shadow Ball", "Substitute", "Will-O-Wisp"], "abilities": ["Flame Body", "Flash Fire"], "teraTypes": ["Fire", "Ghost", "Grass"] }, @@ -5347,7 +5341,7 @@ "sets": [ { "role": "Bulky Attacker", - "movepool": ["Earthquake", "Heavy Slam", "Rest", "Roar", "Sleep Talk", "Stealth Rock", "Stone Edge"], + "movepool": ["Earthquake", "Heavy Slam", "Roar", "Stealth Rock", "Stone Edge"], "abilities": ["Stamina"], "teraTypes": ["Steel"] } @@ -6673,10 +6667,10 @@ "level": 83, "sets": [ { - "role": "Fast Support", - "movepool": ["Hurricane", "Roost", "Thunder Wave", "Thunderbolt", "U-turn"], + "role": "Bulky Attacker", + "movepool": ["Discharge", "Hurricane", "Roost", "Thunderbolt", "U-turn"], "abilities": ["Volt Absorb"], - "teraTypes": ["Electric", "Flying", "Steel", "Water"] + "teraTypes": ["Steel", "Water"] } ] }, @@ -7112,12 +7106,6 @@ "movepool": ["Crunch", "Seed Bomb", "Spore", "Sucker Punch"], "abilities": ["Protosynthesis"], "teraTypes": ["Dark", "Poison"] - }, - { - "role": "Wallbreaker", - "movepool": ["Close Combat", "Crunch", "Seed Bomb", "Sucker Punch"], - "abilities": ["Protosynthesis"], - "teraTypes": ["Dark", "Fighting", "Poison"] } ] }, @@ -7601,7 +7589,7 @@ "sets": [ { "role": "Setup Sweeper", - "movepool": ["Horn Leech", "Ivy Cudgel", "Knock Off", "Power Whip", "Stomping Tantrum", "Swords Dance"], + "movepool": ["Horn Leech", "Ivy Cudgel", "Knock Off", "Power Whip", "Stomping Tantrum", "Swords Dance", "Trailblaze"], "abilities": ["Mold Breaker"], "teraTypes": ["Fire"] } diff --git a/data/random-battles/gen9/teams.ts b/data/random-battles/gen9/teams.ts index 96d122b4df..ee8e83b0e2 100644 --- a/data/random-battles/gen9/teams.ts +++ b/data/random-battles/gen9/teams.ts @@ -104,8 +104,8 @@ const NO_STAB = [ 'accelerock', 'aquajet', 'bounce', 'breakingswipe', 'bulletpunch', 'chatter', 'chloroblast', 'clearsmog', 'covet', 'dragontail', 'doomdesire', 'electroweb', 'eruption', 'explosion', 'fakeout', 'feint', 'flamecharge', 'flipturn', 'futuresight', 'grassyglide', 'iceshard', 'icywind', 'incinerate', 'infestation', 'machpunch', 'meteorbeam', 'mortalspin', 'nuzzle', 'pluck', 'pursuit', - 'quickattack', 'rapidspin', 'reversal', 'selfdestruct', 'shadowsneak', 'skydrop', 'snarl', 'strugglebug', 'suckerpunch', 'uturn', - 'vacuumwave', 'voltswitch', 'watershuriken', 'waterspout', + 'quickattack', 'rapidspin', 'reversal', 'selfdestruct', 'shadowsneak', 'skydrop', 'snarl', 'strugglebug', 'suckerpunch', 'trailblaze', + 'uturn', 'vacuumwave', 'voltswitch', 'watershuriken', 'waterspout', ]; // Hazard-setting moves const HAZARDS = [ @@ -443,6 +443,7 @@ export class RandomTeams { if (SPECIAL_SETUP.includes(moveid)) counter.add('specialsetup'); if (MIXED_SETUP.includes(moveid)) counter.add('mixedsetup'); if (SPEED_SETUP.includes(moveid)) counter.add('speedsetup'); + if (SPEED_CONTROL.includes(moveid)) counter.add('speedcontrol'); if (SETUP.includes(moveid)) counter.add('setup'); if (HAZARDS.includes(moveid)) counter.add('hazards'); } @@ -582,8 +583,7 @@ export class RandomTeams { ['knockoff', 'foulplay'], ['throatchop', ['crunch', 'lashout']], ['doubleedge', ['bodyslam', 'headbutt']], - ['fireblast', ['fierydance', 'flamethrower']], - ['lavaplume', 'magmastorm'], + [['fireblast', 'magmastorm'], ['fierydance', 'flamethrower', 'lavaplume']], ['thunderpunch', 'wildcharge'], ['thunderbolt', 'discharge'], ['gunkshot', ['direclaw', 'poisonjab', 'sludgebomb']], @@ -1265,9 +1265,6 @@ export class RandomTeams { const offensiveRole = ( ['Doubles Fast Attacker', 'Doubles Wallbreaker', 'Doubles Setup Sweeper', 'Offensive Protect'].some(m => role === m) ); - const doublesLeftoversHardcodes = ( - moves.has('acidarmor') || moves.has('wish') || ['eternatus', 'garganacl', 'regigigas', 'toxapex'].includes(species.id) - ); if (species.id === 'ursalunabloodmoon' && moves.has('protect')) return 'Silk Scarf'; if ( @@ -1297,11 +1294,16 @@ export class RandomTeams { species.baseStats.spe <= 70 && (moves.has('ragepowder') || moves.has('followme')) ) return 'Rocky Helmet'; if ( - (role === 'Bulky Protect' && counter.get('setup')) || moves.has('substitute') || moves.has('irondefense') || - moves.has('coil') || doublesLeftoversHardcodes + ability === 'Intimidate' && this.dex.getEffectiveness('Rock', species) >= 1 && + (!types.includes('Flying') || this.dex.getEffectiveness('Rock', species) >= 2) + ) return 'Heavy-Duty Boots'; + if ( + (role === 'Bulky Protect' && counter.get('setup')) || + ['irondefense', 'coil', 'acidarmor', 'wish'].some(m => moves.has(m)) || + (counter.get('recovery') && !moves.has('strengthsap') && !counter.get('speedcontrol') && !offensiveRole) || + species.id === 'regigigas' ) return 'Leftovers'; if (species.id === 'sylveon') return 'Pixie Plate'; - if (ability === 'Intimidate' && this.dex.getEffectiveness('Rock', species) >= 1) return 'Heavy-Duty Boots'; if ( (offensiveRole || (role === 'Tera Blast user' && (species.baseStats.spe >= 80 || moves.has('trickroom')))) && !moves.has('fakeout') && diff --git a/data/random-battles/gen9cap/sets.json b/data/random-battles/gen9cap/sets.json index ebe55a3297..80328477ec 100644 --- a/data/random-battles/gen9cap/sets.json +++ b/data/random-battles/gen9cap/sets.json @@ -57,7 +57,7 @@ ] }, "fidgit": { - "level": 86, + "level": 85, "sets": [ { "role": "Fast Support", @@ -147,7 +147,7 @@ ] }, "krilowatt": { - "level": 84, + "level": 82, "sets": [ { "role": "Fast Attacker", @@ -158,7 +158,7 @@ ] }, "voodoom": { - "level": 81, + "level": 80, "sets": [ { "role": "Fast Attacker", @@ -305,7 +305,7 @@ ] }, "naviathan": { - "level": 79, + "level": 78, "sets": [ { "role": "Setup Sweeper", @@ -316,7 +316,7 @@ ] }, "crucibelle": { - "level": 86, + "level": 85, "sets": [ { "role": "AV Pivot", @@ -350,7 +350,7 @@ ] }, "pajantom": { - "level": 80, + "level": 81, "sets": [ { "role": "Fast Attacker", @@ -378,7 +378,7 @@ ] }, "caribolt": { - "level": 81, + "level": 79, "sets": [ { "role": "Setup Sweeper", @@ -435,7 +435,7 @@ ] }, "equilibra": { - "level": 84, + "level": 83, "sets": [ { "role": "Bulky Support", @@ -480,7 +480,7 @@ ] }, "chromera": { - "level": 82, + "level": 81, "sets": [ { "role": "Wallbreaker", @@ -514,7 +514,7 @@ ] }, "venomiconepilogue": { - "level": 82, + "level": 83, "sets": [ { "role": "Bulky Attacker", @@ -565,7 +565,7 @@ ] }, "cresceidon": { - "level": 81, + "level": 80, "sets": [ { "role": "Bulky Attacker",