Skip to content

Commit 71f6f10

Browse files
authored
Randomized format updates (smogon#10189)
* Randomized format updates * Give CM Cobalion some defensive teras * fix alphabetical order * Gen 5: prevent rocky helmet cm slowbro * Gen 3 synchronize xatu
1 parent ecc939b commit 71f6f10

14 files changed

+368
-229
lines changed

Diff for: data/mods/gen3/random-sets.json

+17-13
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,7 @@
105105
"sets": [
106106
{
107107
"role": "Fast Attacker",
108-
"movepool": ["batonpass", "doubleedge", "drillpeck", "hiddenpowerground", "quickattack", "return"],
109-
"preferredTypes": ["Ground"]
108+
"movepool": ["doubleedge", "drillpeck", "hiddenpowerground", "quickattack", "return"]
110109
}
111110
]
112111
},
@@ -443,8 +442,7 @@
443442
"sets": [
444443
{
445444
"role": "Wallbreaker",
446-
"movepool": ["batonpass", "doubleedge", "drillpeck", "hiddenpowerground", "quickattack", "return"],
447-
"preferredTypes": ["Ground"]
445+
"movepool": ["doubleedge", "drillpeck", "hiddenpowerground", "quickattack", "return"]
448446
},
449447
{
450448
"role": "Berry Sweeper",
@@ -1330,7 +1328,11 @@
13301328
"sets": [
13311329
{
13321330
"role": "Bulky Support",
1333-
"movepool": ["earthquake", "explosion", "hiddenpowerbug", "hiddenpowersteel", "rapidspin", "spikes", "toxic"]
1331+
"movepool": ["earthquake", "hiddenpowerbug", "hiddenpowersteel", "rapidspin", "spikes", "toxic"]
1332+
},
1333+
{
1334+
"role": "Generalist",
1335+
"movepool": ["explosion", "hiddenpowerbug", "hiddenpowersteel", "rapidspin", "spikes", "toxic"]
13341336
}
13351337
]
13361338
},
@@ -1834,7 +1836,8 @@
18341836
},
18351837
{
18361838
"role": "Bulky Setup",
1837-
"movepool": ["bellydrum", "hiddenpowerground", "return", "shadowball", "substitute"]
1839+
"movepool": ["bellydrum", "hiddenpowerground", "return", "shadowball", "substitute"],
1840+
"preferredTypes": ["Ground"]
18381841
}
18391842
]
18401843
},
@@ -2390,10 +2393,6 @@
23902393
"milotic": {
23912394
"level": 77,
23922395
"sets": [
2393-
{
2394-
"role": "Bulky Support",
2395-
"movepool": ["icebeam", "rest", "sleeptalk", "surf", "toxic"]
2396-
},
23972396
{
23982397
"role": "Staller",
23992398
"movepool": ["icebeam", "recover", "refresh", "surf", "toxic"]
@@ -2454,7 +2453,7 @@
24542453
"sets": [
24552454
{
24562455
"role": "Setup Sweeper",
2457-
"movepool": ["hiddenpowerfire", "solarbeam", "sunnyday", "synthesis"]
2456+
"movepool": ["earthquake", "hiddenpowerflying", "swordsdance", "synthesis"]
24582457
},
24592458
{
24602459
"role": "Staller",
@@ -2475,8 +2474,13 @@
24752474
"level": 88,
24762475
"sets": [
24772476
{
2478-
"role": "Fast Attacker",
2479-
"movepool": ["batonpass", "hiddenpowerfighting", "quickattack", "shadowball", "swordsdance"]
2477+
"role": "Setup Sweeper",
2478+
"movepool": ["batonpass", "doubleedge", "hiddenpowerfighting", "quickattack", "shadowball", "swordsdance"],
2479+
"preferredTypes": ["Fighting", "Ghost"]
2480+
},
2481+
{
2482+
"role": "Wallbreaker",
2483+
"movepool": ["doubleedge", "hiddenpowerfighting", "quickattack", "shadowball"]
24802484
}
24812485
]
24822486
},

Diff for: data/mods/gen3/random-teams.ts

+13-1
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ export class RandomGen3Teams extends RandomGen4Teams {
440440
if (species.id === 'arcanine') return 'Intimidate';
441441
if (species.id === 'blissey') return 'Natural Cure';
442442
if (species.id === 'heracross' && role === 'Berry Sweeper') return 'Swarm';
443+
if (species.id === 'xatu') return 'Synchronize';
443444
if (species.id === 'gardevoir') return 'Trace';
444445

445446
let abilityAllowed: Ability[] = [];
@@ -673,6 +674,7 @@ export class RandomGen3Teams extends RandomGen4Teams {
673674
const baseFormes: {[k: string]: number} = {};
674675
const typeCount: {[k: string]: number} = {};
675676
const typeWeaknesses: {[k: string]: number} = {};
677+
const typeDoubleWeaknesses: {[k: string]: number} = {};
676678
const teamDetails: RandomTeamsTypes.TeamDetails = {};
677679
let numMaxLevelPokemon = 0;
678680

@@ -707,7 +709,7 @@ export class RandomGen3Teams extends RandomGen4Teams {
707709
}
708710
if (skip) continue;
709711

710-
// Limit three weak to any type
712+
// Limit three weak to any type, and one double weak to any type
711713
for (const typeName of this.dex.types.names()) {
712714
// it's weak to the type
713715
if (this.dex.getEffectiveness(typeName, species) > 0) {
@@ -717,6 +719,13 @@ export class RandomGen3Teams extends RandomGen4Teams {
717719
break;
718720
}
719721
}
722+
if (this.dex.getEffectiveness(typeName, species) > 1) {
723+
if (!typeDoubleWeaknesses[typeName]) typeDoubleWeaknesses[typeName] = 0;
724+
if (typeDoubleWeaknesses[typeName] >= 1 * limitFactor) {
725+
skip = true;
726+
break;
727+
}
728+
}
720729
}
721730
if (skip) continue;
722731

@@ -751,6 +760,9 @@ export class RandomGen3Teams extends RandomGen4Teams {
751760
if (this.dex.getEffectiveness(typeName, species) > 0) {
752761
typeWeaknesses[typeName]++;
753762
}
763+
if (this.dex.getEffectiveness(typeName, species) > 1) {
764+
typeDoubleWeaknesses[typeName]++;
765+
}
754766
}
755767

756768
// Increment level 100 counter

Diff for: data/mods/gen4/random-sets.json

+23-17
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
},
99
{
1010
"role": "Bulky Attacker",
11-
"movepool": ["earthquake", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "sleeppowder", "sludgebomb", "synthesis"]
11+
"movepool": ["earthquake", "leafstorm", "sleeppowder", "sludgebomb", "synthesis"]
1212
}
1313
]
1414
},
@@ -191,7 +191,7 @@
191191
"sets": [
192192
{
193193
"role": "Bulky Support",
194-
"movepool": ["aromatherapy", "energyball", "hiddenpowerfire", "sleeppowder", "sludgebomb", "synthesis"]
194+
"movepool": ["aromatherapy", "energyball", "hiddenpowerground", "sleeppowder", "sludgebomb", "synthesis"]
195195
},
196196
{
197197
"role": "Setup Sweeper",
@@ -316,7 +316,7 @@
316316
"sets": [
317317
{
318318
"role": "Wallbreaker",
319-
"movepool": ["hiddenpowerfire", "leafblade", "leafstorm", "sleeppowder", "sludgebomb", "suckerpunch"]
319+
"movepool": ["hiddenpowerground", "leafblade", "leafstorm", "sleeppowder", "sludgebomb", "suckerpunch"]
320320
},
321321
{
322322
"role": "Setup Sweeper",
@@ -409,7 +409,8 @@
409409
"sets": [
410410
{
411411
"role": "Bulky Attacker",
412-
"movepool": ["brickbreak", "curse", "explosion", "gunkshot", "icepunch", "payback", "poisonjab", "rest", "shadowsneak"]
412+
"movepool": ["brickbreak", "curse", "explosion", "gunkshot", "icepunch", "payback", "poisonjab", "rest", "shadowsneak"],
413+
"preferredTypes": ["Fighting"]
413414
}
414415
]
415416
},
@@ -546,7 +547,7 @@
546547
"level": 93,
547548
"sets": [
548549
{
549-
"role": "Fast Attacker",
550+
"role": "Setup Sweeper",
550551
"movepool": ["icebeam", "megahorn", "raindance", "return", "waterfall"]
551552
}
552553
]
@@ -877,8 +878,8 @@
877878
"level": 100,
878879
"sets": [
879880
{
880-
"role": "Bulky Support",
881-
"movepool": ["encore", "knockoff", "lightscreen", "reflect", "roost", "toxic", "uturn"]
881+
"role": "Staller",
882+
"movepool": ["encore", "focusblast", "hiddenpowerflying", "knockoff", "roost", "toxic"]
882883
},
883884
{
884885
"role": "Fast Support",
@@ -932,7 +933,7 @@
932933
"sets": [
933934
{
934935
"role": "Bulky Attacker",
935-
"movepool": ["discharge", "focusblast", "healbell", "hiddenpowerice", "lightscreen", "reflect", "signalbeam", "thunderbolt", "toxic"]
936+
"movepool": ["discharge", "focusblast", "healbell", "hiddenpowerice", "signalbeam", "thunderbolt", "toxic"]
936937
}
937938
]
938939
},
@@ -1571,6 +1572,10 @@
15711572
{
15721573
"role": "Setup Sweeper",
15731574
"movepool": ["agility", "airslash", "batonpass", "bugbuzz", "hydropump", "roost"]
1575+
},
1576+
{
1577+
"role": "Bulky Support",
1578+
"movepool": ["airslash", "bugbuzz", "hydropump", "roost", "stunspore", "toxic"]
15741579
}
15751580
]
15761581
},
@@ -1889,7 +1894,7 @@
18891894
"movepool": ["dragondance", "earthquake", "outrage", "roost"]
18901895
},
18911896
{
1892-
"role": "Bulky Support",
1897+
"role": "Bulky Attacker",
18931898
"movepool": ["dracometeor", "earthquake", "fireblast", "haze", "healbell", "roost", "toxic"]
18941899
}
18951900
]
@@ -1920,6 +1925,10 @@
19201925
{
19211926
"role": "Bulky Setup",
19221927
"movepool": ["batonpass", "calmmind", "earthpower", "psychic", "shadowball", "substitute"]
1928+
},
1929+
{
1930+
"role": "Bulky Support",
1931+
"movepool": ["earthpower", "explosion", "psychic", "stealthrock", "toxic"]
19231932
}
19241933
]
19251934
},
@@ -2291,7 +2300,7 @@
22912300
"sets": [
22922301
{
22932302
"role": "Wallbreaker",
2294-
"movepool": ["extremespeed", "hiddenpowerfire", "icebeam", "psychoboost", "shadowball", "stealthrock", "superpower"],
2303+
"movepool": ["extremespeed", "icebeam", "psychoboost", "shadowball", "stealthrock", "superpower"],
22952304
"preferredTypes": ["Fighting"]
22962305
}
22972306
]
@@ -2301,7 +2310,7 @@
23012310
"sets": [
23022311
{
23032312
"role": "Wallbreaker",
2304-
"movepool": ["extremespeed", "hiddenpowerfire", "icebeam", "psychoboost", "shadowball", "superpower"],
2313+
"movepool": ["extremespeed", "icebeam", "psychoboost", "shadowball", "superpower"],
23052314
"preferredTypes": ["Fighting"]
23062315
}
23072316
]
@@ -2419,7 +2428,7 @@
24192428
"sets": [
24202429
{
24212430
"role": "Fast Support",
2422-
"movepool": ["energyball", "hiddenpowerfire", "leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"]
2431+
"movepool": ["energyball", "hiddenpowerground", "leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"]
24232432
}
24242433
]
24252434
},
@@ -3122,10 +3131,6 @@
31223131
{
31233132
"role": "Fast Attacker",
31243133
"movepool": ["dracometeor", "earthquake", "hiddenpowerfire", "outrage", "shadowball", "shadowsneak", "willowisp"]
3125-
},
3126-
{
3127-
"role": "Bulky Setup",
3128-
"movepool": ["aurasphere", "calmmind", "dragonpulse", "substitute"]
31293134
}
31303135
]
31313136
},
@@ -3218,7 +3223,8 @@
32183223
"sets": [
32193224
{
32203225
"role": "Setup Sweeper",
3221-
"movepool": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"]
3226+
"movepool": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"],
3227+
"preferredTypes": ["Ground"]
32223228
}
32233229
]
32243230
},

Diff for: data/mods/gen4/random-teams.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,8 @@ export class RandomGen4Teams extends RandomGen5Teams {
632632
if (['batonpass', 'protect', 'substitute'].some(m => moves.has(m))) return 'Leftovers';
633633
if (
634634
role === 'Fast Support' && isLead && defensiveStatTotal < 255 && !counter.get('recovery') &&
635-
(!counter.get('recoil') || ability === 'Rock Head')
635+
(!counter.get('recoil') || ability === 'Rock Head') &&
636+
(counter.get('hazards') || !moves.has('uturn'))
636637
) return 'Focus Sash';
637638

638639
// Default Items

0 commit comments

Comments
 (0)