@pkmn/randoms 0.7.45 → 0.7.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.mjs CHANGED
@@ -1519,6 +1519,101 @@ var RandomGen8Teams = class {
1519
1519
  }
1520
1520
  return false;
1521
1521
  }
1522
+ getAbility(types, moves, abilities, counter, movePool, teamDetails, species, isDoubles, isNoDynamax) {
1523
+ const abilityData = Array.from(abilities).map((a) => this.dex.abilities.get(a));
1524
+ Utils.sortBy(abilityData, (abil) => -abil.rating);
1525
+ if (abilityData.length <= 1)
1526
+ return abilityData[0].name;
1527
+ if (species.id === "lopunny" && moves.has("facade"))
1528
+ return "Cute Charm";
1529
+ if (species.id === "copperajahgmax")
1530
+ return "Heavy Metal";
1531
+ if (abilities.has("Guts") && // for Ursaring in BDSP
1532
+ !abilities.has("Quick Feet") && (species.id === "gurdurr" || species.id === "throh" || moves.has("facade") || moves.has("rest") && moves.has("sleeptalk")))
1533
+ return "Guts";
1534
+ if (abilities.has("Moxie") && (counter.get("Physical") > 3 || moves.has("bounce")) && !isDoubles)
1535
+ return "Moxie";
1536
+ if (isDoubles) {
1537
+ if (abilities.has("Competitive") && !abilities.has("Shadow Tag") && !abilities.has("Strong Jaw"))
1538
+ return "Competitive";
1539
+ if (abilities.has("Friend Guard"))
1540
+ return "Friend Guard";
1541
+ if (abilities.has("Gluttony") && moves.has("recycle"))
1542
+ return "Gluttony";
1543
+ if (abilities.has("Guts"))
1544
+ return "Guts";
1545
+ if (abilities.has("Harvest"))
1546
+ return "Harvest";
1547
+ if (abilities.has("Healer") && (abilities.has("Natural Cure") || abilities.has("Aroma Veil") && this.randomChance(1, 2)))
1548
+ return "Healer";
1549
+ if (abilities.has("Intimidate"))
1550
+ return "Intimidate";
1551
+ if (species.id === "lopunny")
1552
+ return "Klutz";
1553
+ if (abilities.has("Magic Guard") && !abilities.has("Unaware"))
1554
+ return "Magic Guard";
1555
+ if (abilities.has("Ripen"))
1556
+ return "Ripen";
1557
+ if (abilities.has("Stalwart"))
1558
+ return "Stalwart";
1559
+ if (abilities.has("Storm Drain"))
1560
+ return "Storm Drain";
1561
+ if (abilities.has("Telepathy") && (abilities.has("Pressure") || abilities.has("Analytic")))
1562
+ return "Telepathy";
1563
+ }
1564
+ let abilityAllowed = [];
1565
+ for (const ability of abilityData) {
1566
+ if (ability.rating >= 1 && !this.shouldCullAbility(
1567
+ ability.name,
1568
+ types,
1569
+ moves,
1570
+ abilities,
1571
+ counter,
1572
+ movePool,
1573
+ teamDetails,
1574
+ species,
1575
+ isDoubles,
1576
+ isNoDynamax
1577
+ )) {
1578
+ abilityAllowed.push(ability);
1579
+ }
1580
+ }
1581
+ if (!abilityAllowed.length) {
1582
+ for (const ability of abilityData) {
1583
+ if (ability.rating > 0)
1584
+ abilityAllowed.push(ability);
1585
+ }
1586
+ if (!abilityAllowed.length)
1587
+ abilityAllowed = abilityData;
1588
+ }
1589
+ if (abilityAllowed.length === 1)
1590
+ return abilityAllowed[0].name;
1591
+ if (abilityAllowed[2] && abilityAllowed[0].rating - 0.5 <= abilityAllowed[2].rating) {
1592
+ if (abilityAllowed[1].rating <= abilityAllowed[2].rating) {
1593
+ if (this.randomChance(1, 2))
1594
+ [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]];
1595
+ } else {
1596
+ if (this.randomChance(1, 3))
1597
+ [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]];
1598
+ }
1599
+ if (abilityAllowed[0].rating <= abilityAllowed[1].rating) {
1600
+ if (this.randomChance(2, 3))
1601
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
1602
+ } else {
1603
+ if (this.randomChance(1, 2))
1604
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
1605
+ }
1606
+ } else {
1607
+ if (abilityAllowed[0].rating <= abilityAllowed[1].rating) {
1608
+ if (this.randomChance(1, 2))
1609
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
1610
+ } else if (abilityAllowed[0].rating - 0.5 <= abilityAllowed[1].rating) {
1611
+ if (this.randomChance(1, 3))
1612
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
1613
+ }
1614
+ }
1615
+ return abilityAllowed[0].name;
1616
+ }
1522
1617
  getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, isDoubles) {
1523
1618
  if (moves.has("acrobatics") && ability !== "Ripen")
1524
1619
  return ability === "Grassy Surge" ? "Grassy Seed" : "";
@@ -1930,84 +2025,7 @@ var RandomGen8Teams = class {
1930
2025
  ivs[iv] = HPivs[iv];
1931
2026
  }
1932
2027
  }
1933
- const abilityData = Array.from(abilities).map((a) => this.dex.abilities.get(a));
1934
- Utils.sortBy(abilityData, (abil) => -abil.rating);
1935
- if (abilityData[1]) {
1936
- if (abilityData[2] && abilityData[1].rating <= abilityData[2].rating && this.randomChance(1, 2)) {
1937
- [abilityData[1], abilityData[2]] = [abilityData[2], abilityData[1]];
1938
- }
1939
- if (abilityData[0].rating <= abilityData[1].rating) {
1940
- if (this.randomChance(1, 2))
1941
- [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]];
1942
- } else if (abilityData[0].rating - 0.6 <= abilityData[1].rating) {
1943
- if (this.randomChance(2, 3))
1944
- [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]];
1945
- }
1946
- ability = abilityData[0].name;
1947
- let rejectAbility = false;
1948
- do {
1949
- rejectAbility = this.shouldCullAbility(
1950
- ability,
1951
- types,
1952
- moves,
1953
- abilities,
1954
- counter,
1955
- movePool,
1956
- teamDetails,
1957
- species,
1958
- isDoubles,
1959
- isNoDynamax
1960
- );
1961
- if (rejectAbility) {
1962
- const limberFacade = moves.has("facade") && ability === "Limber";
1963
- if (ability === abilityData[0].name && (abilityData[1].rating >= 1 || limberFacade)) {
1964
- ability = abilityData[1].name;
1965
- } else if (ability === abilityData[1].name && abilityData[2] && (abilityData[2].rating >= 1 || limberFacade)) {
1966
- ability = abilityData[2].name;
1967
- } else {
1968
- ability = abilityData[0].name;
1969
- rejectAbility = false;
1970
- }
1971
- }
1972
- } while (rejectAbility);
1973
- if (forme === "Copperajah" && gmax) {
1974
- ability = "Heavy Metal";
1975
- } else if (abilities.has("Guts") && // for Ursaring in BDSP
1976
- !abilities.has("Quick Feet") && (species.id === "gurdurr" || species.id === "throh" || moves.has("facade") || moves.has("rest") && moves.has("sleeptalk"))) {
1977
- ability = "Guts";
1978
- } else if (abilities.has("Moxie") && (counter.get("Physical") > 3 || moves.has("bounce")) && !isDoubles) {
1979
- ability = "Moxie";
1980
- } else if (isDoubles) {
1981
- if (abilities.has("Competitive") && ability !== "Shadow Tag" && ability !== "Strong Jaw")
1982
- ability = "Competitive";
1983
- if (abilities.has("Friend Guard"))
1984
- ability = "Friend Guard";
1985
- if (abilities.has("Gluttony") && moves.has("recycle"))
1986
- ability = "Gluttony";
1987
- if (abilities.has("Guts"))
1988
- ability = "Guts";
1989
- if (abilities.has("Harvest"))
1990
- ability = "Harvest";
1991
- if (abilities.has("Healer") && (abilities.has("Natural Cure") || abilities.has("Aroma Veil") && this.randomChance(1, 2)))
1992
- ability = "Healer";
1993
- if (abilities.has("Intimidate"))
1994
- ability = "Intimidate";
1995
- if (abilities.has("Klutz") && ability === "Limber")
1996
- ability = "Klutz";
1997
- if (abilities.has("Magic Guard") && ability !== "Friend Guard" && ability !== "Unaware")
1998
- ability = "Magic Guard";
1999
- if (abilities.has("Ripen"))
2000
- ability = "Ripen";
2001
- if (abilities.has("Stalwart"))
2002
- ability = "Stalwart";
2003
- if (abilities.has("Storm Drain"))
2004
- ability = "Storm Drain";
2005
- if (abilities.has("Telepathy") && (ability === "Pressure" || abilities.has("Analytic")))
2006
- ability = "Telepathy";
2007
- }
2008
- } else {
2009
- ability = abilityData[0].name;
2010
- }
2028
+ ability = this.getAbility(types, moves, abilities, counter, movePool, teamDetails, species, isDoubles, isNoDynamax);
2011
2029
  if (species.requiredItems) {
2012
2030
  item = this.sample(species.requiredItems);
2013
2031
  } else {
@@ -3160,7 +3178,6 @@ var RandomGen7Teams = class extends RandomGen8Teams {
3160
3178
  case "Sturdy":
3161
3179
  return !!counter.get("recoil") && !counter.get("recovery");
3162
3180
  case "Chlorophyll":
3163
- case "Leaf Guard":
3164
3181
  return species.baseStats.spe > 100 || abilities.has("Harvest") || !moves.has("sunnyday") && !teamDetails.sun;
3165
3182
  case "Competitive":
3166
3183
  return !counter.get("Special") || moves.has("sleeptalk") && moves.has("rest");
@@ -3240,7 +3257,7 @@ var RandomGen7Teams = class extends RandomGen8Teams {
3240
3257
  case "Simple":
3241
3258
  return !counter.setupType && !moves.has("flamecharge");
3242
3259
  case "Solar Power":
3243
- return !counter.get("Special") || !teamDetails.sun || !!species.isMega;
3260
+ return !counter.get("Special") || abilities.has("Harvest") || !teamDetails.sun || !!species.isMega;
3244
3261
  case "Swarm":
3245
3262
  return !counter.get("Bug") || !!species.isMega;
3246
3263
  case "Sweet Veil":
@@ -3262,6 +3279,89 @@ var RandomGen7Teams = class extends RandomGen8Teams {
3262
3279
  }
3263
3280
  return false;
3264
3281
  }
3282
+ getAbility(types, moves, abilities, counter, movePool, teamDetails, species, isDoubles) {
3283
+ if (species.battleOnly && !species.requiredAbility) {
3284
+ abilities = new Set(Object.values(this.dex.species.get(species.battleOnly).abilities));
3285
+ }
3286
+ const abilityData = Array.from(abilities).map((a) => this.dex.abilities.get(a));
3287
+ Utils.sortBy(abilityData, (abil) => -abil.rating);
3288
+ if (abilityData.length <= 1)
3289
+ return abilityData[0].name;
3290
+ if (abilities.has("Guts") && !abilities.has("Quick Feet") && (moves.has("facade") || moves.has("protect") && !isDoubles || moves.has("sleeptalk") && moves.has("rest")))
3291
+ return "Guts";
3292
+ if (abilities.has("Moxie") && (counter.get("Physical") > 3 || moves.has("bounce")) && !isDoubles)
3293
+ return "Moxie";
3294
+ if (isDoubles) {
3295
+ if (abilities.has("Intimidate"))
3296
+ return "Intimidate";
3297
+ if (abilities.has("Guts"))
3298
+ return "Guts";
3299
+ if (abilities.has("Storm Drain"))
3300
+ return "Storm Drain";
3301
+ if (abilities.has("Harvest"))
3302
+ return "Harvest";
3303
+ if (abilities.has("Unburden") && !abilities.has("Prankster") && !species.isMega)
3304
+ return "Unburden";
3305
+ }
3306
+ if (species.name === "Ambipom" && !counter.get("technician")) {
3307
+ return "Pickup";
3308
+ }
3309
+ if (species.name === "Raticate-Alola")
3310
+ return "Hustle";
3311
+ if (species.baseSpecies === "Altaria")
3312
+ return "Natural Cure";
3313
+ let abilityAllowed = [];
3314
+ for (const ability of abilityData) {
3315
+ if (ability.rating >= 1 && !this.shouldCullAbility(
3316
+ ability.name,
3317
+ types,
3318
+ moves,
3319
+ abilities,
3320
+ counter,
3321
+ movePool,
3322
+ teamDetails,
3323
+ species,
3324
+ isDoubles
3325
+ )) {
3326
+ abilityAllowed.push(ability);
3327
+ }
3328
+ }
3329
+ if (!abilityAllowed.length) {
3330
+ for (const ability of abilityData) {
3331
+ if (ability.rating > 0)
3332
+ abilityAllowed.push(ability);
3333
+ }
3334
+ if (!abilityAllowed.length)
3335
+ abilityAllowed = abilityData;
3336
+ }
3337
+ if (abilityAllowed.length === 1)
3338
+ return abilityAllowed[0].name;
3339
+ if (abilityAllowed[2] && abilityAllowed[0].rating - 0.5 <= abilityAllowed[2].rating) {
3340
+ if (abilityAllowed[1].rating <= abilityAllowed[2].rating) {
3341
+ if (this.randomChance(1, 2))
3342
+ [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]];
3343
+ } else {
3344
+ if (this.randomChance(1, 3))
3345
+ [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]];
3346
+ }
3347
+ if (abilityAllowed[0].rating <= abilityAllowed[1].rating) {
3348
+ if (this.randomChance(2, 3))
3349
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
3350
+ } else {
3351
+ if (this.randomChance(1, 2))
3352
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
3353
+ }
3354
+ } else {
3355
+ if (abilityAllowed[0].rating <= abilityAllowed[1].rating) {
3356
+ if (this.randomChance(1, 2))
3357
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
3358
+ } else if (abilityAllowed[0].rating - 0.5 <= abilityAllowed[1].rating) {
3359
+ if (this.randomChance(1, 3))
3360
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
3361
+ }
3362
+ }
3363
+ return abilityAllowed[0].name;
3364
+ }
3265
3365
  getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, isDoubles) {
3266
3366
  if (species.requiredItems) {
3267
3367
  if (species.baseSpecies === "Arceus" && (moves.has("judgment") || !counter.get(species.types[0]) || teamDetails.zMove)) {
@@ -3662,64 +3762,7 @@ var RandomGen7Teams = class extends RandomGen8Teams {
3662
3762
  }
3663
3763
  const battleOnly = species.battleOnly && !species.requiredAbility;
3664
3764
  const baseSpecies = battleOnly ? this.dex.species.get(species.battleOnly) : species;
3665
- const abilityData = Object.values(baseSpecies.abilities).map((a) => this.dex.abilities.get(a));
3666
- Utils.sortBy(abilityData, (abil) => -abil.rating);
3667
- if (abilityData[1]) {
3668
- if (abilityData[2] && abilityData[1].rating <= abilityData[2].rating && this.randomChance(1, 2)) {
3669
- [abilityData[1], abilityData[2]] = [abilityData[2], abilityData[1]];
3670
- }
3671
- if (abilityData[0].rating <= abilityData[1].rating && this.randomChance(1, 2)) {
3672
- [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]];
3673
- } else if (abilityData[0].rating - 0.6 <= abilityData[1].rating && this.randomChance(2, 3)) {
3674
- [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]];
3675
- }
3676
- ability = abilityData[0].name;
3677
- while (this.shouldCullAbility(
3678
- ability,
3679
- types,
3680
- moves,
3681
- abilities,
3682
- counter,
3683
- movePool,
3684
- teamDetails,
3685
- species,
3686
- isDoubles
3687
- )) {
3688
- if (ability === abilityData[0].name && abilityData[1].rating >= 1) {
3689
- ability = abilityData[1].name;
3690
- } else if (ability === abilityData[1].name && abilityData[2] && abilityData[2].rating >= 1) {
3691
- ability = abilityData[2].name;
3692
- } else {
3693
- ability = abilityData[0].name;
3694
- break;
3695
- }
3696
- }
3697
- if (abilities.has("Guts") && ability !== "Quick Feet" && (moves.has("facade") || moves.has("protect") && !isDoubles || moves.has("sleeptalk") && moves.has("rest"))) {
3698
- ability = "Guts";
3699
- } else if (abilities.has("Moxie") && (counter.get("Physical") > 3 || moves.has("bounce")) && !isDoubles) {
3700
- ability = "Moxie";
3701
- } else if (isDoubles) {
3702
- if (abilities.has("Intimidate") && !battleOnly)
3703
- ability = "Intimidate";
3704
- if (abilities.has("Guts") && ability !== "Intimidate")
3705
- ability = "Guts";
3706
- if (abilities.has("Storm Drain"))
3707
- ability = "Storm Drain";
3708
- if (abilities.has("Harvest"))
3709
- ability = "Harvest";
3710
- if (abilities.has("Unburden") && ability !== "Prankster" && !species.isMega)
3711
- ability = "Unburden";
3712
- }
3713
- if (species.name === "Ambipom" && !counter.get("technician")) {
3714
- ability = "Pickup";
3715
- }
3716
- if (species.name === "Raticate-Alola")
3717
- ability = "Hustle";
3718
- if (species.name === "Altaria")
3719
- ability = "Natural Cure";
3720
- } else {
3721
- ability = abilityData[0].name;
3722
- }
3765
+ ability = this.getAbility(types, moves, abilities, counter, movePool, teamDetails, species, isDoubles);
3723
3766
  if (species.name === "Genesect" && moves.has("technoblast"))
3724
3767
  forme = "Genesect-Douse";
3725
3768
  if (!moves.has("photongeyser") && !teamDetails.zMove && (species.name === "Necrozma-Dusk-Mane" || species.name === "Necrozma-Dawn-Wings")) {
@@ -4873,7 +4916,6 @@ var RandomGen6Teams = class extends RandomGen7Teams {
4873
4916
  case "Sturdy":
4874
4917
  return !!counter.get("recoil") && !counter.get("recovery");
4875
4918
  case "Chlorophyll":
4876
- case "Leaf Guard":
4877
4919
  return species.baseStats.spe > 100 || abilities.has("Harvest") || !moves.has("sunnyday") && !teamDetails.sun;
4878
4920
  case "Competitive":
4879
4921
  return !counter.get("Special") || moves.has("rest") && moves.has("sleeptalk");
@@ -4935,7 +4977,7 @@ var RandomGen6Teams = class extends RandomGen7Teams {
4935
4977
  case "Simple":
4936
4978
  return !counter.setupType && !moves.has("flamecharge");
4937
4979
  case "Solar Power":
4938
- return !counter.get("Special") || !teamDetails.sun || !!species.isMega;
4980
+ return !counter.get("Special") || abilities.has("Harvest") || !teamDetails.sun || !!species.isMega;
4939
4981
  case "Speed Boost":
4940
4982
  return moves.has("uturn");
4941
4983
  case "Swarm":
@@ -4954,11 +4996,79 @@ var RandomGen6Teams = class extends RandomGen7Teams {
4954
4996
  return !!species.isMega || abilities.has("Prankster") || !counter.setupType && !moves.has("acrobatics");
4955
4997
  case "Water Absorb":
4956
4998
  return moves.has("raindance") || ["Drizzle", "Unaware", "Volt Absorb"].some((a) => abilities.has(a));
4957
- case "Weak Armor":
4958
- return counter.setupType !== "Physical";
4959
4999
  }
4960
5000
  return false;
4961
5001
  }
5002
+ getAbility(types, moves, abilities, counter, movePool, teamDetails, species) {
5003
+ if (species.battleOnly && !species.requiredAbility) {
5004
+ abilities = new Set(Object.values(this.dex.species.get(species.battleOnly).abilities));
5005
+ }
5006
+ const abilityData = Array.from(abilities).map((a) => this.dex.abilities.get(a));
5007
+ Utils.sortBy(abilityData, (abil) => -abil.rating);
5008
+ if (abilityData.length <= 1)
5009
+ return abilityData[0].name;
5010
+ if (abilities.has("Guts") && !abilities.has("Quick Feet") && (moves.has("facade") || moves.has("protect") || moves.has("rest") && moves.has("sleeptalk")))
5011
+ return "Guts";
5012
+ if (abilities.has("Moxie") && counter.get("Physical") > 3)
5013
+ return "Moxie";
5014
+ if (species.name === "Ambipom" && !counter.get("technician")) {
5015
+ return "Pickup";
5016
+ }
5017
+ if (species.name === "Lopunny" && moves.has("switcheroo") && this.randomChance(2, 3))
5018
+ return "Klutz";
5019
+ if (species.baseSpecies === "Altaria")
5020
+ return "Natural Cure";
5021
+ let abilityAllowed = [];
5022
+ for (const ability of abilityData) {
5023
+ if (ability.rating >= 1 && !this.shouldCullAbility(
5024
+ ability.name,
5025
+ types,
5026
+ moves,
5027
+ abilities,
5028
+ counter,
5029
+ movePool,
5030
+ teamDetails,
5031
+ species
5032
+ )) {
5033
+ abilityAllowed.push(ability);
5034
+ }
5035
+ }
5036
+ if (!abilityAllowed.length) {
5037
+ for (const ability of abilityData) {
5038
+ if (ability.rating > 0)
5039
+ abilityAllowed.push(ability);
5040
+ }
5041
+ if (!abilityAllowed.length)
5042
+ abilityAllowed = abilityData;
5043
+ }
5044
+ if (abilityAllowed.length === 1)
5045
+ return abilityAllowed[0].name;
5046
+ if (abilityAllowed[2] && abilityAllowed[0].rating - 0.5 <= abilityAllowed[2].rating) {
5047
+ if (abilityAllowed[1].rating <= abilityAllowed[2].rating) {
5048
+ if (this.randomChance(1, 2))
5049
+ [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]];
5050
+ } else {
5051
+ if (this.randomChance(1, 3))
5052
+ [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]];
5053
+ }
5054
+ if (abilityAllowed[0].rating <= abilityAllowed[1].rating) {
5055
+ if (this.randomChance(2, 3))
5056
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
5057
+ } else {
5058
+ if (this.randomChance(1, 2))
5059
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
5060
+ }
5061
+ } else {
5062
+ if (abilityAllowed[0].rating <= abilityAllowed[1].rating) {
5063
+ if (this.randomChance(1, 2))
5064
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
5065
+ } else if (abilityAllowed[0].rating - 0.5 <= abilityAllowed[1].rating) {
5066
+ if (this.randomChance(1, 3))
5067
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
5068
+ }
5069
+ }
5070
+ return abilityAllowed[0].name;
5071
+ }
4962
5072
  getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead) {
4963
5073
  if (species.requiredItem)
4964
5074
  return species.requiredItem;
@@ -5271,43 +5381,7 @@ var RandomGen6Teams = class extends RandomGen7Teams {
5271
5381
  if (species.battleOnly && !species.requiredAbility) {
5272
5382
  abilities = new Set(Object.values(this.dex.species.get(species.battleOnly).abilities));
5273
5383
  }
5274
- const abilityData = [...abilities].map((a) => this.dex.abilities.get(a));
5275
- Utils.sortBy(abilityData, (abil) => -abil.rating);
5276
- if (abilityData.length > 1) {
5277
- if (abilityData[2] && abilityData[1].rating <= abilityData[2].rating && this.randomChance(1, 2)) {
5278
- [abilityData[1], abilityData[2]] = [abilityData[2], abilityData[1]];
5279
- }
5280
- if (abilityData[0].rating <= abilityData[1].rating && this.randomChance(1, 2)) {
5281
- [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]];
5282
- } else if (abilityData[0].rating - 0.6 <= abilityData[1].rating && this.randomChance(2, 3)) {
5283
- [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]];
5284
- }
5285
- ability = abilityData[0].name;
5286
- while (this.shouldCullAbility(ability, types, moves, abilities, counter, movePool, teamDetails, species)) {
5287
- if (ability === abilityData[0].name && abilityData[1].rating >= 1) {
5288
- ability = abilityData[1].name;
5289
- } else if (ability === abilityData[1].name && abilityData[2] && abilityData[2].rating >= 1) {
5290
- ability = abilityData[2].name;
5291
- } else {
5292
- ability = abilityData[0].name;
5293
- break;
5294
- }
5295
- }
5296
- if (abilities.has("Guts") && ability !== "Quick Feet" && (moves.has("facade") || moves.has("protect") || moves.has("rest") && moves.has("sleeptalk"))) {
5297
- ability = "Guts";
5298
- } else if (abilities.has("Moxie") && counter.get("Physical") > 3) {
5299
- ability = "Moxie";
5300
- }
5301
- if (species.name === "Ambipom" && !counter.get("technician")) {
5302
- ability = "Pickup";
5303
- } else if (species.name === "Lopunny" && moves.has("switcheroo") && this.randomChance(2, 3)) {
5304
- ability = "Klutz";
5305
- }
5306
- if (species.name === "Altaria")
5307
- ability = "Natural Cure";
5308
- } else {
5309
- ability = abilityData[0].name;
5310
- }
5384
+ ability = this.getAbility(types, moves, abilities, counter, movePool, teamDetails, species);
5311
5385
  let item = this.getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead);
5312
5386
  if (item === void 0)
5313
5387
  item = this.getMediumPriorityItem(ability, moves, counter, species, false, isLead);
@@ -5592,7 +5666,7 @@ var RandomGen6Teams = class extends RandomGen7Teams {
5592
5666
  import {
5593
5667
  toID as toID4
5594
5668
  } from "@pkmn/sim";
5595
- var randomDataJSON4 = { "venusaur": { "level": 84, "moves": ["hiddenpowerfire", "hiddenpowerice", "leechseed", "naturepower", "powerwhip", "sleeppowder", "sludgebomb", "swordsdance", "synthesis"] }, "charizard": { "level": 85, "moves": ["airslash", "dragonpulse", "fireblast", "focusblast", "hiddenpowergrass", "roost"] }, "blastoise": { "level": 83, "moves": ["icebeam", "protect", "rapidspin", "scald", "toxic"] }, "butterfree": { "level": 92, "moves": ["bugbuzz", "hiddenpowerrock", "psychic", "quiverdance", "sleeppowder", "substitute"] }, "beedrill": { "level": 94, "moves": ["drillrun", "poisonjab", "tailwind", "toxicspikes", "uturn"] }, "pidgeot": { "level": 90, "moves": ["bravebird", "heatwave", "quickattack", "return", "roost", "uturn", "workup"] }, "raticate": { "level": 90, "moves": ["crunch", "facade", "flamewheel", "suckerpunch", "swordsdance", "uturn"] }, "fearow": { "level": 90, "moves": ["doubleedge", "drillpeck", "drillrun", "pursuit", "quickattack", "return", "roost", "uturn"] }, "arbok": { "level": 91, "moves": ["aquatail", "coil", "earthquake", "glare", "gunkshot", "rest", "seedbomb", "suckerpunch"] }, "pikachu": { "level": 90, "moves": ["extremespeed", "grassknot", "hiddenpowerice", "voltswitch", "volttackle"] }, "raichu": { "level": 89, "moves": ["encore", "focusblast", "grassknot", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"] }, "sandslash": { "level": 86, "moves": ["earthquake", "rapidspin", "stealthrock", "stoneedge", "swordsdance", "xscissor"] }, "nidoqueen": { "level": 82, "moves": ["earthpower", "fireblast", "icebeam", "sludgewave", "stealthrock", "toxicspikes"] }, "nidoking": { "level": 82, "moves": ["earthpower", "fireblast", "icebeam", "sludgewave", "substitute", "superpower"] }, "clefable": { "level": 84, "moves": ["calmmind", "doubleedge", "icebeam", "softboiled", "stealthrock", "thunderbolt", "thunderwave"] }, "ninetales": { "level": 80, "moves": ["fireblast", "nastyplot", "painsplit", "solarbeam", "substitute", "willowisp"] }, "wigglytuff": { "level": 90, "moves": ["doubleedge", "fireblast", "healbell", "protect", "stealthrock", "toxic", "wish"] }, "vileplume": { "level": 88, "moves": ["aromatherapy", "gigadrain", "hiddenpowerfire", "leechseed", "sleeppowder", "sludgebomb", "synthesis"] }, "parasect": { "level": 92, "moves": ["aromatherapy", "leechseed", "seedbomb", "spore", "stunspore", "synthesis", "xscissor"] }, "venomoth": { "level": 84, "moves": ["bugbuzz", "quiverdance", "roost", "sleeppowder", "substitute"] }, "dugtrio": { "level": 82, "moves": ["aerialace", "earthquake", "stealthrock", "stoneedge"] }, "persian": { "level": 90, "moves": ["bite", "fakeout", "return", "switcheroo", "taunt", "uturn", "waterpulse"] }, "golduck": { "level": 88, "moves": ["calmmind", "encore", "focusblast", "hydropump", "icebeam", "psyshock", "scald"] }, "primeape": { "level": 86, "moves": ["closecombat", "honeclaws", "icepunch", "stoneedge", "uturn"] }, "arcanine": { "level": 82, "moves": ["closecombat", "extremespeed", "flareblitz", "hiddenpowergrass", "morningsun", "wildcharge", "willowisp"] }, "poliwrath": { "level": 85, "moves": ["circlethrow", "rest", "scald", "sleeptalk"] }, "alakazam": { "level": 80, "moves": ["calmmind", "encore", "focusblast", "psychic", "psyshock", "shadowball"] }, "machamp": { "level": 82, "moves": ["bulkup", "bulletpunch", "dynamicpunch", "icepunch", "payback", "stoneedge"] }, "victreebel": { "level": 89, "moves": ["powerwhip", "sleeppowder", "sludgebomb", "suckerpunch", "sunnyday", "weatherball"] }, "tentacruel": { "level": 80, "moves": ["gigadrain", "icebeam", "protect", "rapidspin", "scald", "toxic", "toxicspikes"] }, "golem": { "level": 86, "moves": ["earthquake", "explosion", "rockblast", "stealthrock", "suckerpunch", "toxic"] }, "rapidash": { "level": 88, "moves": ["drillrun", "flareblitz", "megahorn", "morningsun", "wildcharge", "willowisp"] }, "slowbro": { "level": 82, "moves": ["calmmind", "icebeam", "psyshock", "scald", "slackoff", "thunderwave", "toxic"] }, "farfetchd": { "level": 100, "moves": ["bravebird", "leafblade", "quickattack", "return", "swordsdance"] }, "dodrio": { "level": 88, "moves": ["bravebird", "pursuit", "quickattack", "return", "roost"] }, "dewgong": { "level": 90, "moves": ["icebeam", "protect", "rest", "sleeptalk", "surf", "toxic"] }, "muk": { "level": 90, "moves": ["brickbreak", "curse", "firepunch", "gunkshot", "icepunch", "poisonjab", "rest", "shadowsneak"] }, "cloyster": { "level": 80, "moves": ["hydropump", "iceshard", "iciclespear", "rapidspin", "rockblast", "shellsmash", "spikes"] }, "gengar": { "level": 79, "moves": ["focusblast", "shadowball", "sludgewave", "substitute", "trick", "willowisp"] }, "hypno": { "level": 90, "moves": ["foulplay", "protect", "psychic", "thunderwave", "toxic", "wish"] }, "kingler": { "level": 90, "moves": ["agility", "crabhammer", "return", "superpower", "swordsdance", "xscissor"] }, "electrode": { "level": 87, "moves": ["foulplay", "hiddenpowergrass", "hiddenpowerice", "taunt", "thunderbolt", "voltswitch"] }, "exeggutor": { "level": 86, "moves": ["gigadrain", "hiddenpowerfire", "leechseed", "protect", "psychic", "sleeppowder", "substitute"] }, "marowak": { "level": 89, "moves": ["bonemerang", "doubleedge", "earthquake", "firepunch", "stealthrock", "stoneedge"] }, "hitmonlee": { "level": 84, "moves": ["closecombat", "earthquake", "fakeout", "stoneedge", "suckerpunch"] }, "hitmonchan": { "level": 85, "moves": ["bulkup", "closecombat", "drainpunch", "icepunch", "machpunch", "rapidspin", "stoneedge"] }, "weezing": { "level": 88, "moves": ["fireblast", "haze", "painsplit", "sludgebomb", "willowisp"] }, "rhydon": { "level": 84, "moves": ["earthquake", "megahorn", "stealthrock", "stoneedge", "toxic"] }, "chansey": { "level": 82, "moves": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "toxic"] }, "kangaskhan": { "level": 86, "moves": ["doubleedge", "earthquake", "fakeout", "focuspunch", "return", "substitute", "suckerpunch"] }, "seaking": { "level": 90, "moves": ["drillrun", "icebeam", "megahorn", "return", "waterfall"] }, "starmie": { "level": 80, "moves": ["hydropump", "icebeam", "psyshock", "rapidspin", "recover", "scald", "thunderbolt", "trick"] }, "mrmime": { "level": 90, "moves": ["encore", "focusblast", "nastyplot", "psychic", "substitute", "thunderbolt"] }, "scyther": { "level": 84, "moves": ["aerialace", "brickbreak", "bugbite", "quickattack", "roost", "swordsdance"] }, "jynx": { "level": 85, "moves": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psyshock", "substitute", "trick"] }, "pinsir": { "level": 86, "moves": ["closecombat", "earthquake", "quickattack", "stealthrock", "stoneedge", "swordsdance", "xscissor"] }, "tauros": { "level": 85, "moves": ["doubleedge", "earthquake", "pursuit", "retaliate", "stoneedge"] }, "gyarados": { "level": 80, "moves": ["dragondance", "earthquake", "icefang", "stoneedge", "waterfall"] }, "lapras": { "level": 86, "moves": ["healbell", "hydropump", "icebeam", "substitute", "thunderbolt", "toxic"] }, "ditto": { "level": 86, "moves": ["transform"] }, "vaporeon": { "level": 82, "moves": ["icebeam", "protect", "roar", "scald", "toxic", "wish"] }, "jolteon": { "level": 81, "moves": ["hiddenpowerice", "signalbeam", "thunderbolt", "voltswitch"] }, "flareon": { "level": 90, "moves": ["facade", "flamecharge", "rest", "sleeptalk"] }, "omastar": { "level": 83, "moves": ["hiddenpowergrass", "icebeam", "shellsmash", "spikes", "stealthrock", "surf"] }, "kabutops": { "level": 85, "moves": ["aquajet", "rapidspin", "stealthrock", "stoneedge", "superpower", "swordsdance", "waterfall"] }, "aerodactyl": { "level": 84, "moves": ["aquatail", "doubleedge", "earthquake", "roost", "stealthrock", "stoneedge", "taunt"] }, "snorlax": { "level": 82, "moves": ["bodyslam", "crunch", "curse", "earthquake", "firepunch", "pursuit", "rest"] }, "articuno": { "level": 85, "moves": ["hurricane", "icebeam", "roost", "substitute", "toxic"] }, "zapdos": { "level": 80, "moves": ["heatwave", "hiddenpowerice", "roost", "substitute", "thunderbolt", "toxic", "uturn"] }, "moltres": { "level": 84, "moves": ["fireblast", "hiddenpowergrass", "hurricane", "roost", "substitute", "toxic", "uturn", "willowisp"] }, "dragonair": { "level": 90, "moves": ["dragondance", "outrage", "rest", "sleeptalk", "waterfall"] }, "dragonite": { "level": 77, "moves": ["dragondance", "earthquake", "extremespeed", "firepunch", "outrage", "roost"] }, "mewtwo": { "level": 71, "moves": ["aurasphere", "calmmind", "fireblast", "psystrike", "recover", "shadowball"] }, "mew": { "level": 80, "moves": ["aurasphere", "fireblast", "nastyplot", "psychic", "softboiled", "stealthrock", "taunt", "uturn", "willowisp"] }, "meganium": { "level": 90, "moves": ["aromatherapy", "dragontail", "gigadrain", "leechseed", "lightscreen", "reflect", "synthesis", "toxic"] }, "typhlosion": { "level": 83, "moves": ["eruption", "fireblast", "focusblast", "hiddenpowergrass", "hiddenpowerrock"] }, "feraligatr": { "level": 84, "moves": ["aquajet", "dragondance", "earthquake", "icepunch", "superpower", "swordsdance", "waterfall"] }, "furret": { "level": 90, "moves": ["aquatail", "doubleedge", "firepunch", "shadowclaw", "trick", "uturn"] }, "noctowl": { "level": 92, "moves": ["airslash", "magiccoat", "nightshade", "roost", "toxic", "whirlwind"] }, "ledian": { "level": 97, "moves": ["encore", "lightscreen", "reflect", "roost", "toxic", "uturn"] }, "ariados": { "level": 94, "moves": ["poisonjab", "suckerpunch", "toxicspikes", "xscissor"] }, "crobat": { "level": 83, "moves": ["bravebird", "heatwave", "roost", "superfang", "taunt", "toxic", "uturn"] }, "lanturn": { "level": 84, "moves": ["healbell", "icebeam", "scald", "thunderbolt", "thunderwave", "voltswitch"] }, "xatu": { "level": 83, "moves": ["heatwave", "psychic", "roost", "thunderwave", "toxic", "uturn"] }, "ampharos": { "level": 87, "moves": ["agility", "focusblast", "healbell", "hiddenpowergrass", "hiddenpowerice", "thunderbolt", "toxic", "voltswitch"] }, "bellossom": { "level": 91, "moves": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "leafstorm", "leechseed", "sleeppowder", "stunspore", "synthesis"] }, "azumarill": { "level": 83, "moves": ["aquajet", "doubleedge", "icepunch", "superpower", "waterfall"] }, "sudowoodo": { "level": 90, "moves": ["earthquake", "stealthrock", "stoneedge", "suckerpunch", "toxic", "woodhammer"] }, "politoed": { "level": 82, "moves": ["encore", "focusblast", "hiddenpowergrass", "hypnosis", "icebeam", "protect", "scald", "toxic"] }, "jumpluff": { "level": 88, "moves": ["acrobatics", "encore", "energyball", "leechseed", "sleeppowder", "uturn"] }, "sunflora": { "level": 94, "moves": ["earthpower", "encore", "gigadrain", "hiddenpowerrock", "solarbeam", "sunnyday"] }, "quagsire": { "level": 84, "moves": ["earthquake", "encore", "recover", "scald", "toxic"] }, "espeon": { "level": 81, "moves": ["calmmind", "hiddenpowerfire", "morningsun", "psychic", "psyshock", "signalbeam"] }, "umbreon": { "level": 83, "moves": ["foulplay", "protect", "toxic", "wish"] }, "murkrow": { "level": 88, "moves": ["foulplay", "roost", "taunt", "thunderwave", "toxic"] }, "slowking": { "level": 84, "moves": ["calmmind", "fireblast", "grassknot", "icebeam", "psychic", "slackoff", "surf", "trickroom"] }, "unown": { "level": 100, "moves": ["hiddenpowerpsychic"] }, "wobbuffet": { "level": 85, "moves": ["counter", "destinybond", "encore", "mirrorcoat"] }, "girafarig": { "level": 90, "moves": ["calmmind", "hiddenpowerfire", "hypervoice", "psychic", "psyshock", "thunderbolt"] }, "forretress": { "level": 80, "moves": ["gyroball", "rapidspin", "spikes", "stealthrock", "toxic", "voltswitch"] }, "dunsparce": { "level": 91, "moves": ["bite", "bodyslam", "coil", "glare", "headbutt", "rockslide", "roost"] }, "gligar": { "level": 82, "moves": ["earthquake", "roost", "stealthrock", "taunt", "toxic", "uturn"] }, "steelix": { "level": 84, "moves": ["curse", "earthquake", "gyroball", "roar", "stealthrock", "stoneedge", "toxic"] }, "granbull": { "level": 90, "moves": ["closecombat", "crunch", "healbell", "return", "thunderwave", "toxic"] }, "qwilfish": { "level": 85, "moves": ["destinybond", "poisonjab", "spikes", "taunt", "thunderwave", "toxicspikes", "waterfall"] }, "scizor": { "level": 80, "moves": ["bugbite", "bulletpunch", "pursuit", "roost", "superpower", "swordsdance", "uturn"] }, "shuckle": { "level": 90, "moves": ["encore", "knockoff", "protect", "stealthrock", "toxic"] }, "heracross": { "level": 81, "moves": ["closecombat", "earthquake", "facade", "megahorn", "stoneedge"] }, "ursaring": { "level": 86, "moves": ["closecombat", "crunch", "earthquake", "facade", "protect", "swordsdance"] }, "magcargo": { "level": 91, "moves": ["hiddenpowerrock", "lavaplume", "recover", "stealthrock", "toxic"] }, "corsola": { "level": 91, "moves": ["powergem", "recover", "scald", "stealthrock", "toxic"] }, "octillery": { "level": 90, "moves": ["energyball", "fireblast", "hydropump", "icebeam", "thunderwave"] }, "delibird": { "level": 100, "moves": ["aerialace", "icebeam", "iceshard", "rapidspin"] }, "mantine": { "level": 89, "moves": ["airslash", "hydropump", "icebeam", "raindance", "rest", "scald", "sleeptalk"] }, "skarmory": { "level": 79, "moves": ["bravebird", "roost", "spikes", "stealthrock", "whirlwind"] }, "houndoom": { "level": 82, "moves": ["darkpulse", "fireblast", "hiddenpowergrass", "nastyplot", "suckerpunch"] }, "kingdra": { "level": 82, "moves": ["dracometeor", "dragondance", "hiddenpowerelectric", "hydropump", "icebeam", "outrage", "raindance", "waterfall"] }, "donphan": { "level": 82, "moves": ["earthquake", "headsmash", "iceshard", "rapidspin", "seedbomb", "stealthrock"] }, "porygon2": { "level": 82, "moves": ["discharge", "icebeam", "recover", "toxic", "triattack"] }, "stantler": { "level": 90, "moves": ["doubleedge", "earthquake", "jumpkick", "megahorn", "suckerpunch"] }, "smeargle": { "level": 84, "moves": ["memento", "spikes", "spore", "stealthrock", "whirlwind"] }, "hitmontop": { "level": 85, "moves": ["closecombat", "machpunch", "rapidspin", "stoneedge", "suckerpunch", "toxic"] }, "miltank": { "level": 84, "moves": ["bodyslam", "earthquake", "healbell", "milkdrink", "stealthrock", "toxic"] }, "blissey": { "level": 82, "moves": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic"] }, "raikou": { "level": 80, "moves": ["aurasphere", "calmmind", "hiddenpowerice", "substitute", "thunderbolt", "voltswitch"] }, "entei": { "level": 83, "moves": ["bulldoze", "extremespeed", "flareblitz", "hiddenpowergrass", "stoneedge"] }, "suicune": { "level": 82, "moves": ["calmmind", "hiddenpowerelectric", "hydropump", "icebeam", "rest", "roar", "scald", "sleeptalk"] }, "tyranitar": { "level": 80, "moves": ["crunch", "fireblast", "pursuit", "stealthrock", "stoneedge", "superpower"] }, "lugia": { "level": 74, "moves": ["aeroblast", "earthquake", "roost", "substitute", "toxic", "whirlwind"] }, "hooh": { "level": 74, "moves": ["bravebird", "earthquake", "roost", "sacredfire", "substitute", "toxic"] }, "celebi": { "level": 80, "moves": ["earthpower", "gigadrain", "hiddenpowerice", "leafstorm", "nastyplot", "psychic", "recover", "stealthrock", "uturn"] }, "sceptile": { "level": 84, "moves": ["acrobatics", "earthquake", "leafblade", "substitute", "swordsdance"] }, "blaziken": { "level": 76, "moves": ["flareblitz", "highjumpkick", "protect", "stoneedge", "swordsdance"] }, "swampert": { "level": 82, "moves": ["earthquake", "icebeam", "protect", "roar", "scald", "stealthrock", "toxic"] }, "mightyena": { "level": 91, "moves": ["crunch", "facade", "firefang", "howl", "suckerpunch"] }, "linoone": { "level": 86, "moves": ["bellydrum", "extremespeed", "seedbomb", "shadowclaw"] }, "beautifly": { "level": 94, "moves": ["bugbuzz", "hiddenpowerground", "psychic", "quiverdance"] }, "dustox": { "level": 90, "moves": ["bugbuzz", "quiverdance", "roost", "sludgebomb"] }, "ludicolo": { "level": 86, "moves": ["gigadrain", "hydropump", "icebeam", "raindance", "scald"] }, "shiftry": { "level": 88, "moves": ["darkpulse", "hiddenpowerfire", "leafstorm", "naturepower", "seedbomb", "suckerpunch", "swordsdance"] }, "swellow": { "level": 86, "moves": ["bravebird", "facade", "protect", "quickattack", "uturn"] }, "pelipper": { "level": 90, "moves": ["hurricane", "icebeam", "roost", "scald", "tailwind", "toxic", "uturn"] }, "gardevoir": { "level": 86, "moves": ["calmmind", "focusblast", "painsplit", "psychic", "substitute", "thunderbolt", "trick", "willowisp"] }, "masquerain": { "level": 90, "moves": ["airslash", "bugbuzz", "hydropump", "quiverdance", "roost"] }, "breloom": { "level": 80, "moves": ["bulletseed", "machpunch", "spore", "stoneedge", "swordsdance"] }, "vigoroth": { "level": 87, "moves": ["bulkup", "earthquake", "return", "slackoff", "taunt", "toxic"] }, "slaking": { "level": 86, "moves": ["earthquake", "nightslash", "pursuit", "retaliate", "return"] }, "ninjask": { "level": 87, "moves": ["aerialace", "substitute", "swordsdance", "xscissor"] }, "shedinja": { "level": 90, "moves": ["shadowclaw", "shadowsneak", "swordsdance", "willowisp", "xscissor"] }, "exploud": { "level": 90, "moves": ["fireblast", "focusblast", "hypervoice", "lowkick", "surf"] }, "hariyama": { "level": 84, "moves": ["bulletpunch", "closecombat", "facade", "fakeout", "stoneedge"] }, "delcatty": { "level": 92, "moves": ["doubleedge", "fakeout", "icebeam", "suckerpunch", "thunderwave"] }, "sableye": { "level": 85, "moves": ["foulplay", "nightshade", "recover", "taunt", "willowisp"] }, "mawile": { "level": 91, "moves": ["firefang", "ironhead", "stealthrock", "suckerpunch", "swordsdance"] }, "aggron": { "level": 85, "moves": ["aquatail", "earthquake", "headsmash", "heavyslam", "rockpolish", "stealthrock", "thunderwave"] }, "medicham": { "level": 84, "moves": ["bulletpunch", "highjumpkick", "icepunch", "thunderpunch", "trick", "zenheadbutt"] }, "manectric": { "level": 84, "moves": ["flamethrower", "hiddenpowerice", "overheat", "switcheroo", "thunderbolt", "voltswitch"] }, "plusle": { "level": 90, "moves": ["grassknot", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"] }, "minun": { "level": 90, "moves": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"] }, "volbeat": { "level": 90, "moves": ["bugbuzz", "encore", "roost", "thunderwave", "uturn"] }, "illumise": { "level": 90, "moves": ["bugbuzz", "encore", "roost", "substitute", "thunderwave", "wish"] }, "swalot": { "level": 91, "moves": ["earthquake", "encore", "painsplit", "protect", "sludgebomb", "toxic"] }, "sharpedo": { "level": 82, "moves": ["crunch", "earthquake", "icebeam", "protect", "waterfall", "zenheadbutt"] }, "wailord": { "level": 90, "moves": ["hiddenpowergrass", "hydropump", "icebeam", "surf", "waterspout"] }, "camerupt": { "level": 87, "moves": ["earthquake", "hiddenpowergrass", "lavaplume", "roar", "stealthrock"] }, "torkoal": { "level": 87, "moves": ["earthquake", "lavaplume", "protect", "rapidspin", "stealthrock", "toxic", "yawn"] }, "grumpig": { "level": 90, "moves": ["focusblast", "healbell", "psychic", "shadowball", "thunderwave", "trick", "whirlwind"] }, "spinda": { "level": 96, "moves": ["return", "suckerpunch", "superpower", "trickroom"] }, "flygon": { "level": 82, "moves": ["earthquake", "firepunch", "outrage", "roost", "stoneedge", "superpower", "uturn"] }, "cacturne": { "level": 87, "moves": ["drainpunch", "seedbomb", "spikes", "substitute", "suckerpunch", "swordsdance"] }, "altaria": { "level": 87, "moves": ["dracometeor", "dragondance", "earthquake", "fireblast", "healbell", "outrage", "roost"] }, "zangoose": { "level": 86, "moves": ["closecombat", "facade", "nightslash", "quickattack", "swordsdance"] }, "seviper": { "level": 90, "moves": ["earthquake", "flamethrower", "gigadrain", "sludgebomb", "suckerpunch", "switcheroo"] }, "lunatone": { "level": 90, "moves": ["earthpower", "hiddenpowerrock", "moonlight", "psychic", "stealthrock", "toxic"] }, "solrock": { "level": 90, "moves": ["explosion", "lightscreen", "morningsun", "reflect", "rockslide", "stealthrock", "willowisp"] }, "whiscash": { "level": 89, "moves": ["dragondance", "earthquake", "icebeam", "waterfall"] }, "crawdaunt": { "level": 85, "moves": ["crunch", "dragondance", "superpower", "waterfall"] }, "claydol": { "level": 83, "moves": ["earthquake", "icebeam", "psychic", "rapidspin", "stealthrock", "toxic"] }, "cradily": { "level": 87, "moves": ["earthquake", "recover", "rockslide", "seedbomb", "stealthrock", "swordsdance", "toxic"] }, "armaldo": { "level": 87, "moves": ["aquatail", "earthquake", "rapidspin", "stealthrock", "stoneedge", "swordsdance", "xscissor"] }, "milotic": { "level": 82, "moves": ["dragontail", "haze", "icebeam", "recover", "scald", "toxic"] }, "castformsunny": { "level": 99, "moves": ["icebeam", "solarbeam", "sunnyday", "weatherball"] }, "castformrainy": { "level": 99, "moves": ["icebeam", "raindance", "thunder", "weatherball"] }, "kecleon": { "level": 91, "moves": ["foulplay", "recover", "stealthrock", "thunderwave", "toxic"] }, "banette": { "level": 91, "moves": ["pursuit", "shadowclaw", "shadowsneak", "trick", "willowisp"] }, "dusclops": { "level": 84, "moves": ["nightshade", "rest", "sleeptalk", "willowisp"] }, "tropius": { "level": 90, "moves": ["airslash", "leechseed", "protect", "substitute", "toxic"] }, "chimecho": { "level": 92, "moves": ["calmmind", "healingwish", "psychic", "recover", "shadowball", "toxic", "yawn"] }, "absol": { "level": 85, "moves": ["fireblast", "nightslash", "psychocut", "pursuit", "suckerpunch", "superpower", "swordsdance"] }, "glalie": { "level": 90, "moves": ["earthquake", "explosion", "icebeam", "spikes", "taunt"] }, "walrein": { "level": 90, "moves": ["encore", "icebeam", "protect", "roar", "surf", "toxic"] }, "huntail": { "level": 86, "moves": ["icebeam", "return", "shellsmash", "waterfall"] }, "gorebyss": { "level": 82, "moves": ["hiddenpowergrass", "hydropump", "icebeam", "shellsmash"] }, "relicanth": { "level": 88, "moves": ["doubleedge", "earthquake", "headsmash", "stealthrock", "waterfall"] }, "luvdisc": { "level": 100, "moves": ["icebeam", "protect", "surf", "sweetkiss", "toxic"] }, "salamence": { "level": 79, "moves": ["aquatail", "brickbreak", "dracometeor", "dragondance", "earthquake", "fireblast", "outrage", "roost"] }, "metagross": { "level": 81, "moves": ["agility", "bulletpunch", "earthquake", "meteormash", "pursuit", "stealthrock", "zenheadbutt"] }, "regirock": { "level": 86, "moves": ["drainpunch", "protect", "rockslide", "stealthrock", "thunderwave", "toxic"] }, "regice": { "level": 86, "moves": ["focusblast", "icebeam", "rest", "rockpolish", "sleeptalk", "thunderbolt"] }, "registeel": { "level": 82, "moves": ["curse", "ironhead", "protect", "rest", "sleeptalk", "stealthrock", "toxic"] }, "latias": { "level": 73, "moves": ["calmmind", "dracometeor", "psyshock", "roost"] }, "latios": { "level": 73, "moves": ["calmmind", "dracometeor", "psyshock", "roost"] }, "kyogre": { "level": 73, "moves": ["calmmind", "icebeam", "rest", "sleeptalk", "surf", "thunder", "waterspout"] }, "groudon": { "level": 76, "moves": ["earthquake", "firepunch", "stealthrock", "stoneedge", "swordsdance", "thunderwave"] }, "rayquaza": { "level": 75, "moves": ["dracometeor", "dragondance", "earthquake", "extremespeed", "outrage", "swordsdance", "vcreate"] }, "jirachi": { "level": 79, "moves": ["bodyslam", "firepunch", "icepunch", "ironhead", "substitute", "uturn", "wish"] }, "deoxys": { "level": 75, "moves": ["extremespeed", "hiddenpowerfire", "icebeam", "psychoboost", "stealthrock", "superpower"] }, "deoxysattack": { "level": 74, "moves": ["extremespeed", "hiddenpowerfire", "icebeam", "psychoboost", "stealthrock", "superpower"] }, "deoxysdefense": { "level": 81, "moves": ["magiccoat", "recover", "seismictoss", "spikes", "taunt", "toxic"] }, "deoxysspeed": { "level": 76, "moves": ["icebeam", "lightscreen", "psychoboost", "reflect", "spikes", "stealthrock", "superpower", "taunt"] }, "torterra": { "level": 88, "moves": ["earthquake", "rockpolish", "stealthrock", "stoneedge", "synthesis", "woodhammer"] }, "infernape": { "level": 81, "moves": ["closecombat", "flareblitz", "hiddenpowerice", "machpunch", "overheat", "swordsdance", "thunderpunch", "uturn"] }, "empoleon": { "level": 82, "moves": ["agility", "grassknot", "hydropump", "icebeam", "protect", "scald", "stealthrock", "toxic"] }, "staraptor": { "level": 82, "moves": ["bravebird", "closecombat", "doubleedge", "quickattack", "roost", "uturn"] }, "bibarel": { "level": 90, "moves": ["curse", "quickattack", "rest", "waterfall"] }, "kricketune": { "level": 97, "moves": ["brickbreak", "bugbite", "nightslash", "return", "swordsdance"] }, "luxray": { "level": 90, "moves": ["crunch", "facade", "icefang", "superpower", "voltswitch", "wildcharge"] }, "roserade": { "level": 83, "moves": ["gigadrain", "hiddenpowerfire", "leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"] }, "rampardos": { "level": 89, "moves": ["crunch", "earthquake", "firepunch", "headsmash", "rockpolish", "superpower"] }, "bastiodon": { "level": 88, "moves": ["metalburst", "protect", "roar", "rockblast", "stealthrock", "toxic"] }, "wormadam": { "level": 96, "moves": ["gigadrain", "hiddenpowerrock", "leafstorm", "protect", "signalbeam", "toxic"] }, "wormadamsandy": { "level": 90, "moves": ["earthquake", "protect", "rockblast", "stealthrock", "toxic"] }, "wormadamtrash": { "level": 90, "moves": ["ironhead", "protect", "stealthrock", "toxic"] }, "mothim": { "level": 92, "moves": ["airslash", "bugbuzz", "hiddenpowerground", "quiverdance", "substitute"] }, "vespiquen": { "level": 95, "moves": ["attackorder", "protect", "roost", "substitute", "toxic"] }, "pachirisu": { "level": 91, "moves": ["protect", "superfang", "thunderwave", "toxic", "voltswitch"] }, "floatzel": { "level": 86, "moves": ["aquajet", "bulkup", "crunch", "icepunch", "switcheroo", "taunt", "waterfall"] }, "cherrim": { "level": 91, "moves": ["energyball", "healingwish", "hiddenpowerrock", "hiddenpowerfire", "naturepower"] }, "gastrodon": { "level": 82, "moves": ["earthquake", "icebeam", "recover", "scald", "toxic"] }, "ambipom": { "level": 82, "moves": ["fakeout", "lowkick", "pursuit", "return", "switcheroo", "uturn"] }, "drifblim": { "level": 85, "moves": ["acrobatics", "destinybond", "disable", "shadowball", "substitute", "willowisp"] }, "lopunny": { "level": 90, "moves": ["firepunch", "healingwish", "icepunch", "jumpkick", "return", "switcheroo", "thunderpunch"] }, "mismagius": { "level": 82, "moves": ["hiddenpowerfighting", "nastyplot", "shadowball", "substitute", "taunt", "thunderbolt", "willowisp"] }, "honchkrow": { "level": 82, "moves": ["bravebird", "heatwave", "pursuit", "roost", "substitute", "suckerpunch", "superpower"] }, "purugly": { "level": 89, "moves": ["fakeout", "hypnosis", "return", "suckerpunch", "uturn"] }, "skuntank": { "level": 86, "moves": ["crunch", "fireblast", "poisonjab", "pursuit", "suckerpunch", "taunt"] }, "bronzong": { "level": 81, "moves": ["earthquake", "hypnosis", "psychic", "stealthrock", "toxic"] }, "chatot": { "level": 90, "moves": ["chatter", "heatwave", "hiddenpowerground", "hypervoice", "nastyplot", "substitute", "uturn"] }, "spiritomb": { "level": 84, "moves": ["calmmind", "darkpulse", "foulplay", "rest", "shadowsneak", "sleeptalk", "willowisp"] }, "garchomp": { "level": 76, "moves": ["aquatail", "earthquake", "fireblast", "outrage", "stealthrock", "stoneedge", "swordsdance"] }, "lucario": { "level": 82, "moves": ["closecombat", "crunch", "extremespeed", "icepunch", "swordsdance"] }, "hippowdon": { "level": 82, "moves": ["earthquake", "slackoff", "stealthrock", "stoneedge", "toxic", "whirlwind"] }, "drapion": { "level": 84, "moves": ["aquatail", "crunch", "earthquake", "poisonjab", "pursuit", "swordsdance", "taunt", "toxicspikes"] }, "toxicroak": { "level": 80, "moves": ["drainpunch", "icepunch", "poisonjab", "substitute", "suckerpunch", "swordsdance"] }, "carnivine": { "level": 92, "moves": ["leechseed", "powerwhip", "return", "sleeppowder", "substitute", "swordsdance"] }, "lumineon": { "level": 89, "moves": ["icebeam", "protect", "scald", "toxic", "uturn"] }, "abomasnow": { "level": 83, "moves": ["blizzard", "earthquake", "hiddenpowerfire", "iceshard", "leechseed", "woodhammer"] }, "weavile": { "level": 82, "moves": ["icepunch", "iceshard", "lowkick", "nightslash", "pursuit", "swordsdance"] }, "magnezone": { "level": 81, "moves": ["flashcannon", "hiddenpowerfire", "thunderbolt", "toxic", "voltswitch"] }, "lickilicky": { "level": 86, "moves": ["bodyslam", "earthquake", "healbell", "powerwhip", "protect", "swordsdance", "toxic", "wish"] }, "rhyperior": { "level": 82, "moves": ["earthquake", "icepunch", "megahorn", "rockpolish", "stoneedge"] }, "tangrowth": { "level": 84, "moves": ["earthquake", "hiddenpowerfire", "leechseed", "powerwhip", "rockslide", "sleeppowder", "synthesis"] }, "electivire": { "level": 84, "moves": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"] }, "magmortar": { "level": 84, "moves": ["fireblast", "focusblast", "hiddenpowergrass", "substitute", "thunderbolt"] }, "togekiss": { "level": 82, "moves": ["airslash", "aurasphere", "nastyplot", "roost", "thunderwave"] }, "yanmega": { "level": 82, "moves": ["airslash", "bugbuzz", "hiddenpowerground", "protect", "uturn"] }, "leafeon": { "level": 89, "moves": ["leafblade", "return", "swordsdance", "xscissor"] }, "glaceon": { "level": 90, "moves": ["hiddenpowerground", "icebeam", "protect", "shadowball", "toxic", "wish"] }, "gliscor": { "level": 80, "moves": ["earthquake", "icefang", "protect", "roost", "substitute", "swordsdance", "taunt", "toxic"] }, "mamoswine": { "level": 79, "moves": ["earthquake", "iceshard", "iciclecrash", "stealthrock", "superpower"] }, "porygonz": { "level": 82, "moves": ["agility", "darkpulse", "hiddenpowerfighting", "icebeam", "nastyplot", "thunderbolt", "triattack", "trick"] }, "gallade": { "level": 84, "moves": ["closecombat", "drainpunch", "nightslash", "substitute", "swordsdance", "trick", "zenheadbutt"] }, "probopass": { "level": 86, "moves": ["earthpower", "powergem", "stealthrock", "toxic", "voltswitch"] }, "dusknoir": { "level": 84, "moves": ["earthquake", "icepunch", "painsplit", "shadowsneak", "trick", "willowisp"] }, "froslass": { "level": 82, "moves": ["destinybond", "icebeam", "shadowball", "spikes", "taunt", "thunderwave"] }, "rotom": { "level": 84, "moves": ["hiddenpowerice", "painsplit", "shadowball", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] }, "rotomheat": { "level": 82, "moves": ["hiddenpowergrass", "overheat", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"] }, "rotomwash": { "level": 81, "moves": ["hiddenpowerice", "hydropump", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"] }, "rotomfrost": { "level": 86, "moves": ["blizzard", "hiddenpowerfire", "painsplit", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] }, "rotomfan": { "level": 86, "moves": ["airslash", "painsplit", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] }, "rotommow": { "level": 84, "moves": ["hiddenpowerfire", "leafstorm", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"] }, "uxie": { "level": 84, "moves": ["healbell", "lightscreen", "memento", "psychic", "reflect", "stealthrock", "thunderwave", "uturn", "yawn"] }, "mesprit": { "level": 83, "moves": ["calmmind", "hiddenpowerfire", "icebeam", "psychic", "stealthrock", "thunderbolt", "trick", "uturn"] }, "azelf": { "level": 81, "moves": ["energyball", "fireblast", "nastyplot", "psychic", "stealthrock", "taunt", "trick", "uturn"] }, "dialga": { "level": 72, "moves": ["aurasphere", "dracometeor", "dragontail", "fireblast", "stealthrock", "thunderbolt"] }, "palkia": { "level": 74, "moves": ["dracometeor", "dragontail", "fireblast", "hydropump", "spacialrend", "surf", "thunderbolt"] }, "heatran": { "level": 80, "moves": ["earthpower", "fireblast", "flashcannon", "hiddenpowerice", "lavaplume", "protect", "roar", "stealthrock", "toxic"] }, "regigigas": { "level": 85, "moves": ["confuseray", "return", "rockslide", "substitute", "thunderwave"] }, "giratinaorigin": { "level": 75, "moves": ["dracometeor", "earthquake", "hiddenpowerfire", "shadowsneak", "willowisp"] }, "giratina": { "level": 73, "moves": ["calmmind", "dragonpulse", "dragontail", "rest", "sleeptalk", "willowisp"] }, "cresselia": { "level": 82, "moves": ["calmmind", "hiddenpowerfighting", "moonlight", "psychic", "thunderwave", "toxic"] }, "phione": { "level": 90, "moves": ["healbell", "icebeam", "scald", "toxic", "uturn"] }, "manaphy": { "level": 76, "moves": ["energyball", "icebeam", "surf", "tailglow"] }, "darkrai": { "level": 72, "moves": ["darkpulse", "darkvoid", "focusblast", "nastyplot", "substitute"] }, "shaymin": { "level": 82, "moves": ["earthpower", "hiddenpowerfire", "leechseed", "psychic", "rest", "seedflare"] }, "shayminsky": { "level": 74, "moves": ["airslash", "earthpower", "hiddenpowerfire", "hiddenpowerice", "leechseed", "seedflare", "substitute"] }, "arceus": { "level": 72, "moves": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"] }, "arceusbug": { "level": 72, "moves": ["earthquake", "recover", "stoneedge", "swordsdance", "xscissor"] }, "arceusdark": { "level": 72, "moves": ["calmmind", "judgment", "recover", "refresh"] }, "arceusdragon": { "level": 72, "moves": ["earthquake", "extremespeed", "outrage", "recover", "swordsdance"] }, "arceuselectric": { "level": 72, "moves": ["calmmind", "icebeam", "judgment", "recover"] }, "arceusfighting": { "level": 72, "moves": ["calmmind", "darkpulse", "icebeam", "judgment", "recover"] }, "arceusfire": { "level": 72, "moves": ["calmmind", "fireblast", "judgment", "recover", "thunderbolt"] }, "arceusflying": { "level": 72, "moves": ["calmmind", "earthpower", "judgment", "recover", "substitute"] }, "arceusghost": { "level": 72, "moves": ["calmmind", "focusblast", "judgment", "recover", "roar", "willowisp"] }, "arceusgrass": { "level": 72, "moves": ["calmmind", "earthpower", "icebeam", "judgment", "recover", "thunderwave"] }, "arceusground": { "level": 72, "moves": ["calmmind", "icebeam", "judgment", "recover", "willowisp"] }, "arceusice": { "level": 72, "moves": ["calmmind", "fireblast", "icebeam", "recover", "thunderbolt"] }, "arceuspoison": { "level": 72, "moves": ["flamethrower", "icebeam", "recover", "sludgebomb", "stealthrock", "willowisp"] }, "arceuspsychic": { "level": 72, "moves": ["calmmind", "darkpulse", "focusblast", "judgment", "recover"] }, "arceusrock": { "level": 72, "moves": ["earthquake", "recover", "stoneedge", "swordsdance"] }, "arceussteel": { "level": 72, "moves": ["calmmind", "judgment", "recover", "thunderbolt", "willowisp"] }, "arceuswater": { "level": 72, "moves": ["brickbreak", "extremespeed", "recover", "swordsdance", "waterfall"] }, "victini": { "level": 81, "moves": ["blueflare", "boltstrike", "energyball", "focusblast", "glaciate", "trick", "uturn", "vcreate"] }, "serperior": { "level": 86, "moves": ["calmmind", "dragonpulse", "gigadrain", "hiddenpowerfire", "leechseed", "substitute"] }, "emboar": { "level": 84, "moves": ["earthquake", "fireblast", "flareblitz", "grassknot", "headsmash", "superpower", "wildcharge"] }, "samurott": { "level": 86, "moves": ["aquajet", "grassknot", "icebeam", "megahorn", "superpower", "swordsdance", "waterfall"] }, "watchog": { "level": 90, "moves": ["crunch", "hypnosis", "return", "substitute", "superfang", "swordsdance"] }, "stoutland": { "level": 88, "moves": ["crunch", "return", "superpower", "thunderwave", "wildcharge"] }, "liepard": { "level": 86, "moves": ["darkpulse", "encore", "hiddenpowerfire", "nastyplot", "thunderwave"] }, "simisage": { "level": 88, "moves": ["focusblast", "gigadrain", "hiddenpowerrock", "leechseed", "nastyplot", "substitute"] }, "simisear": { "level": 88, "moves": ["fireblast", "focusblast", "grassknot", "hiddenpowerrock", "nastyplot", "substitute"] }, "simipour": { "level": 86, "moves": ["focusblast", "hiddenpowergrass", "hydropump", "icebeam", "nastyplot", "substitute"] }, "musharna": { "level": 86, "moves": ["calmmind", "healbell", "hiddenpowerground", "moonlight", "psychic", "signalbeam", "toxic", "trickroom"] }, "unfezant": { "level": 89, "moves": ["hypnosis", "pluck", "return", "roost", "tailwind", "uturn"] }, "zebstrika": { "level": 88, "moves": ["hiddenpowergrass", "overheat", "thunderbolt", "voltswitch", "wildcharge"] }, "gigalith": { "level": 86, "moves": ["earthquake", "explosion", "rockblast", "stealthrock", "stoneedge", "superpower"] }, "swoobat": { "level": 88, "moves": ["airslash", "calmmind", "heatwave", "roost", "storedpower"] }, "excadrill": { "level": 80, "moves": ["earthquake", "ironhead", "rapidspin", "rockslide", "swordsdance"] }, "audino": { "level": 90, "moves": ["doubleedge", "healbell", "magiccoat", "protect", "toxic", "wish"] }, "conkeldurr": { "level": 80, "moves": ["bulkup", "drainpunch", "icepunch", "machpunch", "thunderpunch"] }, "seismitoad": { "level": 86, "moves": ["earthquake", "hydropump", "raindance", "sludgebomb", "stealthrock", "toxic"] }, "throh": { "level": 88, "moves": ["bulkup", "icepunch", "payback", "rest", "sleeptalk", "stormthrow"] }, "sawk": { "level": 85, "moves": ["bulkup", "closecombat", "earthquake", "icepunch", "stoneedge"] }, "leavanny": { "level": 90, "moves": ["leafblade", "swordsdance", "synthesis", "xscissor"] }, "scolipede": { "level": 86, "moves": ["aquatail", "earthquake", "megahorn", "rockslide", "spikes", "swordsdance"] }, "whimsicott": { "level": 84, "moves": ["encore", "gigadrain", "leechseed", "stunspore", "taunt", "uturn"] }, "lilligant": { "level": 84, "moves": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "petaldance", "quiverdance", "sleeppowder"] }, "basculinbluestriped": { "level": 86, "moves": ["aquajet", "crunch", "superpower", "waterfall", "zenheadbutt"] }, "basculin": { "level": 86, "moves": ["aquajet", "crunch", "superpower", "waterfall", "zenheadbutt"] }, "krookodile": { "level": 81, "moves": ["crunch", "earthquake", "pursuit", "stealthrock", "stoneedge", "superpower"] }, "darmanitan": { "level": 82, "moves": ["earthquake", "flareblitz", "rockslide", "superpower", "uturn"] }, "maractus": { "level": 91, "moves": ["gigadrain", "hiddenpowerfire", "leechseed", "spikes", "toxic"] }, "crustle": { "level": 84, "moves": ["earthquake", "rockblast", "shellsmash", "spikes", "stealthrock", "stoneedge", "xscissor"] }, "scrafty": { "level": 81, "moves": ["crunch", "dragondance", "highjumpkick", "icepunch", "zenheadbutt"] }, "sigilyph": { "level": 84, "moves": ["cosmicpower", "psychoshift", "roost", "storedpower"] }, "cofagrigus": { "level": 85, "moves": ["haze", "hiddenpowerfighting", "nastyplot", "painsplit", "shadowball", "trickroom", "willowisp"] }, "carracosta": { "level": 86, "moves": ["aquajet", "earthquake", "icebeam", "shellsmash", "stealthrock", "stoneedge", "waterfall"] }, "archeops": { "level": 82, "moves": ["acrobatics", "earthquake", "headsmash", "pluck", "roost", "stoneedge", "uturn"] }, "garbodor": { "level": 87, "moves": ["drainpunch", "gunkshot", "haze", "painsplit", "spikes", "toxicspikes"] }, "zoroark": { "moves": ["darkpulse", "flamethrower", "focusblast", "nastyplot", "uturn"] }, "cinccino": { "level": 81, "moves": ["bulletseed", "rockblast", "tailslap", "uturn"] }, "gothitelle": { "level": 86, "moves": ["calmmind", "hiddenpowerfighting", "psychic", "rest", "thunderbolt", "trick"] }, "reuniclus": { "level": 81, "moves": ["calmmind", "focusblast", "psychic", "recover", "shadowball", "trickroom"] }, "swanna": { "level": 88, "moves": ["hurricane", "icebeam", "raindance", "roost", "surf"] }, "vanilluxe": { "level": 90, "moves": ["autotomize", "explosion", "flashcannon", "hiddenpowerground", "icebeam"] }, "sawsbuck": { "level": 86, "moves": ["doubleedge", "hornleech", "megahorn", "naturepower", "return", "substitute", "swordsdance"] }, "emolga": { "level": 89, "moves": ["acrobatics", "encore", "roost", "thunderbolt", "toxic", "uturn"] }, "escavalier": { "level": 84, "moves": ["ironhead", "megahorn", "pursuit", "return", "swordsdance"] }, "amoonguss": { "level": 85, "moves": ["clearsmog", "gigadrain", "hiddenpowerfire", "spore", "stunspore", "synthesis"] }, "jellicent": { "level": 81, "moves": ["icebeam", "recover", "scald", "shadowball", "toxic", "willowisp"] }, "alomomola": { "level": 86, "moves": ["protect", "scald", "toxic", "waterfall", "wish"] }, "galvantula": { "level": 83, "moves": ["bugbuzz", "gigadrain", "hiddenpowerice", "thunder", "voltswitch"] }, "ferrothorn": { "level": 78, "moves": ["gyroball", "leechseed", "powerwhip", "protect", "spikes", "stealthrock", "toxic"] }, "klinklang": { "level": 84, "moves": ["geargrind", "return", "shiftgear", "substitute", "wildcharge"] }, "eelektross": { "level": 86, "moves": ["flamethrower", "gigadrain", "hiddenpowerice", "superpower", "thunderbolt", "uturn"] }, "beheeyem": { "level": 88, "moves": ["hiddenpowerfighting", "psychic", "thunderbolt", "trick", "trickroom"] }, "chandelure": { "level": 82, "moves": ["calmmind", "energyball", "fireblast", "hiddenpowerfighting", "shadowball", "substitute"] }, "haxorus": { "level": 78, "moves": ["aquatail", "dragondance", "earthquake", "outrage", "superpower", "swordsdance"] }, "beartic": { "level": 90, "moves": ["aquajet", "iciclecrash", "stoneedge", "superpower", "swordsdance"] }, "cryogonal": { "level": 85, "moves": ["hiddenpowerfire", "icebeam", "rapidspin", "recover", "toxic"] }, "accelgor": { "level": 84, "moves": ["bugbuzz", "encore", "focusblast", "gigadrain", "hiddenpowerrock", "spikes", "yawn"] }, "stunfisk": { "level": 88, "moves": ["discharge", "earthpower", "foulplay", "rest", "scald", "sleeptalk", "stealthrock", "toxic"] }, "mienshao": { "level": 82, "moves": ["highjumpkick", "stoneedge", "substitute", "swordsdance", "uturn"] }, "druddigon": { "level": 84, "moves": ["dragontail", "earthquake", "glare", "outrage", "stealthrock", "suckerpunch", "superpower"] }, "golurk": { "level": 85, "moves": ["drainpunch", "earthquake", "icepunch", "rockpolish", "shadowpunch", "stealthrock"] }, "bisharp": { "level": 82, "moves": ["ironhead", "lowkick", "nightslash", "suckerpunch", "swordsdance"] }, "bouffalant": { "level": 85, "moves": ["earthquake", "headcharge", "megahorn", "stoneedge", "swordsdance"] }, "braviary": { "level": 86, "moves": ["bravebird", "bulkup", "return", "roost", "superpower", "uturn"] }, "mandibuzz": { "level": 86, "moves": ["bravebird", "foulplay", "roost", "taunt", "toxic", "whirlwind"] }, "heatmor": { "level": 90, "moves": ["fireblast", "gigadrain", "suckerpunch", "superpower"] }, "durant": { "level": 81, "moves": ["honeclaws", "ironhead", "rockslide", "superpower", "xscissor"] }, "hydreigon": { "level": 80, "moves": ["darkpulse", "dracometeor", "flamethrower", "focusblast", "roost", "uturn"] }, "volcarona": { "level": 79, "moves": ["bugbuzz", "fierydance", "fireblast", "gigadrain", "hiddenpowerground", "quiverdance", "roost"] }, "cobalion": { "level": 79, "moves": ["closecombat", "hiddenpowerice", "ironhead", "stealthrock", "stoneedge", "swordsdance", "taunt", "thunderwave", "voltswitch"] }, "terrakion": { "level": 78, "moves": ["closecombat", "earthquake", "quickattack", "stealthrock", "stoneedge", "swordsdance"] }, "virizion": { "level": 82, "moves": ["closecombat", "leafblade", "stoneedge", "swordsdance"] }, "tornadus": { "level": 81, "moves": ["acrobatics", "bulkup", "focusblast", "heatwave", "hurricane", "superpower", "taunt", "uturn"] }, "tornadustherian": { "level": 76, "moves": ["focusblast", "heatwave", "hurricane", "superpower", "uturn"] }, "thundurus": { "level": 76, "moves": ["focusblast", "hiddenpowerice", "nastyplot", "thunderbolt", "thunderwave", "voltswitch"] }, "thundurustherian": { "level": 80, "moves": ["agility", "focusblast", "grassknot", "hiddenpowerice", "nastyplot", "thunderbolt"] }, "reshiram": { "level": 76, "moves": ["blueflare", "dracometeor", "roost", "stoneedge", "tailwind"] }, "zekrom": { "level": 76, "moves": ["boltstrike", "dracometeor", "focusblast", "honeclaws", "outrage", "roost", "substitute", "voltswitch"] }, "landorus": { "level": 76, "moves": ["earthpower", "focusblast", "psychic", "rockpolish", "rockslide", "sludgewave"] }, "landorustherian": { "level": 80, "moves": ["earthquake", "rockpolish", "stealthrock", "stoneedge", "superpower", "swordsdance", "uturn"] }, "kyurem": { "level": 78, "moves": ["dracometeor", "earthpower", "focusblast", "icebeam", "outrage", "roost", "substitute"] }, "kyuremblack": { "level": 78, "moves": ["dragonclaw", "earthpower", "fusionbolt", "icebeam", "roost", "substitute"] }, "kyuremwhite": { "level": 74, "moves": ["dracometeor", "earthpower", "focusblast", "fusionflare", "icebeam", "roost", "substitute"] }, "keldeo": { "level": 79, "moves": ["calmmind", "hiddenpowergrass", "hydropump", "icywind", "scald", "secretsword", "substitute"] }, "meloetta": { "level": 82, "moves": ["calmmind", "focusblast", "psychic", "shadowball", "uturn"] }, "meloettapirouette": { "level": 82, "moves": ["closecombat", "icepunch", "relicsong", "return", "shadowclaw"] }, "genesect": { "level": 75, "moves": ["bugbuzz", "flamethrower", "icebeam", "ironhead", "rockpolish", "thunderbolt", "uturn"] } };
5669
+ var randomDataJSON4 = { "venusaur": { "level": 84, "moves": ["hiddenpowerfire", "hiddenpowerice", "leechseed", "naturepower", "powerwhip", "sleeppowder", "sludgebomb", "swordsdance", "synthesis"] }, "charizard": { "level": 85, "moves": ["airslash", "dragonpulse", "fireblast", "focusblast", "hiddenpowergrass", "roost"] }, "blastoise": { "level": 83, "moves": ["icebeam", "protect", "rapidspin", "scald", "toxic"] }, "butterfree": { "level": 92, "moves": ["bugbuzz", "hiddenpowerrock", "psychic", "quiverdance", "sleeppowder", "substitute"] }, "beedrill": { "level": 94, "moves": ["drillrun", "poisonjab", "tailwind", "toxicspikes", "uturn"] }, "pidgeot": { "level": 90, "moves": ["bravebird", "heatwave", "quickattack", "return", "roost", "uturn", "workup"] }, "raticate": { "level": 90, "moves": ["crunch", "facade", "flamewheel", "suckerpunch", "swordsdance", "uturn"] }, "fearow": { "level": 90, "moves": ["doubleedge", "drillpeck", "drillrun", "pursuit", "quickattack", "return", "roost", "uturn"] }, "arbok": { "level": 91, "moves": ["aquatail", "coil", "earthquake", "glare", "gunkshot", "rest", "seedbomb", "suckerpunch"] }, "pikachu": { "level": 90, "moves": ["extremespeed", "grassknot", "hiddenpowerice", "voltswitch", "volttackle"] }, "raichu": { "level": 89, "moves": ["encore", "focusblast", "grassknot", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"] }, "sandslash": { "level": 86, "moves": ["earthquake", "rapidspin", "stealthrock", "stoneedge", "swordsdance", "xscissor"] }, "nidoqueen": { "level": 82, "moves": ["earthpower", "fireblast", "icebeam", "sludgewave", "stealthrock", "toxicspikes"] }, "nidoking": { "level": 82, "moves": ["earthpower", "fireblast", "icebeam", "sludgewave", "substitute", "superpower"] }, "clefable": { "level": 84, "moves": ["calmmind", "doubleedge", "icebeam", "softboiled", "stealthrock", "thunderbolt", "thunderwave"] }, "ninetales": { "level": 80, "moves": ["fireblast", "nastyplot", "painsplit", "solarbeam", "substitute", "willowisp"] }, "wigglytuff": { "level": 90, "moves": ["doubleedge", "fireblast", "healbell", "protect", "stealthrock", "toxic", "wish"] }, "vileplume": { "level": 88, "moves": ["aromatherapy", "gigadrain", "hiddenpowerfire", "leechseed", "sleeppowder", "sludgebomb", "synthesis"] }, "parasect": { "level": 92, "moves": ["aromatherapy", "leechseed", "seedbomb", "spore", "stunspore", "synthesis", "xscissor"] }, "venomoth": { "level": 84, "moves": ["bugbuzz", "quiverdance", "roost", "sleeppowder"] }, "dugtrio": { "level": 82, "moves": ["aerialace", "earthquake", "stealthrock", "stoneedge"] }, "persian": { "level": 90, "moves": ["bite", "fakeout", "return", "switcheroo", "taunt", "uturn", "waterpulse"] }, "golduck": { "level": 88, "moves": ["calmmind", "encore", "focusblast", "hydropump", "icebeam", "psyshock", "scald"] }, "primeape": { "level": 86, "moves": ["closecombat", "honeclaws", "icepunch", "stoneedge", "uturn"] }, "arcanine": { "level": 82, "moves": ["closecombat", "extremespeed", "flareblitz", "hiddenpowergrass", "morningsun", "wildcharge", "willowisp"] }, "poliwrath": { "level": 85, "moves": ["circlethrow", "rest", "scald", "sleeptalk"] }, "alakazam": { "level": 80, "moves": ["calmmind", "encore", "focusblast", "psychic", "psyshock", "shadowball"] }, "machamp": { "level": 82, "moves": ["bulkup", "bulletpunch", "dynamicpunch", "icepunch", "payback", "stoneedge"] }, "victreebel": { "level": 89, "moves": ["powerwhip", "sleeppowder", "sludgebomb", "suckerpunch", "sunnyday", "weatherball"] }, "tentacruel": { "level": 80, "moves": ["gigadrain", "icebeam", "protect", "rapidspin", "scald", "toxic", "toxicspikes"] }, "golem": { "level": 86, "moves": ["earthquake", "explosion", "rockblast", "stealthrock", "suckerpunch", "toxic"] }, "rapidash": { "level": 88, "moves": ["drillrun", "flareblitz", "megahorn", "morningsun", "wildcharge", "willowisp"] }, "slowbro": { "level": 82, "moves": ["calmmind", "icebeam", "psyshock", "scald", "slackoff", "thunderwave", "toxic"] }, "farfetchd": { "level": 100, "moves": ["bravebird", "leafblade", "quickattack", "return", "swordsdance"] }, "dodrio": { "level": 88, "moves": ["bravebird", "pursuit", "quickattack", "return", "roost"] }, "dewgong": { "level": 90, "moves": ["icebeam", "protect", "rest", "sleeptalk", "surf", "toxic"] }, "muk": { "level": 90, "moves": ["brickbreak", "curse", "firepunch", "gunkshot", "icepunch", "poisonjab", "rest", "shadowsneak"] }, "cloyster": { "level": 80, "moves": ["hydropump", "iceshard", "iciclespear", "rapidspin", "rockblast", "shellsmash", "spikes"] }, "gengar": { "level": 79, "moves": ["focusblast", "shadowball", "sludgewave", "substitute", "trick", "willowisp"] }, "hypno": { "level": 90, "moves": ["foulplay", "protect", "psychic", "thunderwave", "toxic", "wish"] }, "kingler": { "level": 90, "moves": ["agility", "crabhammer", "return", "superpower", "swordsdance", "xscissor"] }, "electrode": { "level": 87, "moves": ["foulplay", "hiddenpowergrass", "hiddenpowerice", "taunt", "thunderbolt", "voltswitch"] }, "exeggutor": { "level": 86, "moves": ["gigadrain", "hiddenpowerfire", "leechseed", "protect", "psychic", "sleeppowder", "substitute"] }, "marowak": { "level": 89, "moves": ["bonemerang", "doubleedge", "earthquake", "firepunch", "stealthrock", "stoneedge"] }, "hitmonlee": { "level": 84, "moves": ["closecombat", "earthquake", "fakeout", "stoneedge", "suckerpunch"] }, "hitmonchan": { "level": 85, "moves": ["bulkup", "closecombat", "drainpunch", "icepunch", "machpunch", "rapidspin", "stoneedge"] }, "weezing": { "level": 88, "moves": ["fireblast", "haze", "painsplit", "sludgebomb", "willowisp"] }, "rhydon": { "level": 84, "moves": ["earthquake", "megahorn", "stealthrock", "stoneedge", "toxic"] }, "chansey": { "level": 82, "moves": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "toxic"] }, "kangaskhan": { "level": 86, "moves": ["doubleedge", "earthquake", "fakeout", "focuspunch", "return", "substitute", "suckerpunch"] }, "seaking": { "level": 90, "moves": ["drillrun", "icebeam", "megahorn", "return", "waterfall"] }, "starmie": { "level": 80, "moves": ["hydropump", "icebeam", "psyshock", "rapidspin", "recover", "scald", "thunderbolt", "trick"] }, "mrmime": { "level": 90, "moves": ["encore", "focusblast", "nastyplot", "psychic", "substitute", "thunderbolt"] }, "scyther": { "level": 84, "moves": ["aerialace", "brickbreak", "bugbite", "quickattack", "roost", "swordsdance"] }, "jynx": { "level": 85, "moves": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psyshock", "substitute", "trick"] }, "pinsir": { "level": 86, "moves": ["closecombat", "earthquake", "quickattack", "stealthrock", "stoneedge", "swordsdance", "xscissor"] }, "tauros": { "level": 85, "moves": ["doubleedge", "earthquake", "pursuit", "retaliate", "stoneedge"] }, "gyarados": { "level": 80, "moves": ["dragondance", "earthquake", "icefang", "stoneedge", "waterfall"] }, "lapras": { "level": 86, "moves": ["healbell", "hydropump", "icebeam", "substitute", "thunderbolt", "toxic"] }, "ditto": { "level": 86, "moves": ["transform"] }, "vaporeon": { "level": 82, "moves": ["icebeam", "protect", "roar", "scald", "toxic", "wish"] }, "jolteon": { "level": 81, "moves": ["hiddenpowerice", "signalbeam", "thunderbolt", "voltswitch"] }, "flareon": { "level": 90, "moves": ["facade", "flamecharge", "rest", "sleeptalk"] }, "omastar": { "level": 83, "moves": ["hiddenpowergrass", "icebeam", "shellsmash", "spikes", "stealthrock", "surf"] }, "kabutops": { "level": 85, "moves": ["aquajet", "rapidspin", "stealthrock", "stoneedge", "superpower", "swordsdance", "waterfall"] }, "aerodactyl": { "level": 84, "moves": ["aquatail", "doubleedge", "earthquake", "roost", "stealthrock", "stoneedge", "taunt"] }, "snorlax": { "level": 82, "moves": ["bodyslam", "crunch", "curse", "earthquake", "firepunch", "pursuit", "rest"] }, "articuno": { "level": 85, "moves": ["hurricane", "icebeam", "roost", "substitute", "toxic"] }, "zapdos": { "level": 80, "moves": ["heatwave", "hiddenpowerice", "roost", "substitute", "thunderbolt", "toxic", "uturn"] }, "moltres": { "level": 84, "moves": ["fireblast", "hiddenpowergrass", "hurricane", "roost", "substitute", "toxic", "uturn", "willowisp"] }, "dragonair": { "level": 90, "moves": ["dragondance", "outrage", "rest", "sleeptalk", "waterfall"] }, "dragonite": { "level": 77, "moves": ["dragondance", "earthquake", "extremespeed", "firepunch", "outrage", "roost"] }, "mewtwo": { "level": 71, "moves": ["aurasphere", "calmmind", "fireblast", "psystrike", "recover", "shadowball"] }, "mew": { "level": 80, "moves": ["aurasphere", "fireblast", "nastyplot", "psychic", "softboiled", "stealthrock", "taunt", "uturn", "willowisp"] }, "meganium": { "level": 90, "moves": ["aromatherapy", "dragontail", "gigadrain", "leechseed", "lightscreen", "reflect", "synthesis", "toxic"] }, "typhlosion": { "level": 83, "moves": ["eruption", "fireblast", "focusblast", "hiddenpowergrass", "hiddenpowerrock"] }, "feraligatr": { "level": 84, "moves": ["aquajet", "dragondance", "earthquake", "icepunch", "superpower", "swordsdance", "waterfall"] }, "furret": { "level": 90, "moves": ["aquatail", "doubleedge", "firepunch", "shadowclaw", "trick", "uturn"] }, "noctowl": { "level": 92, "moves": ["airslash", "magiccoat", "nightshade", "roost", "toxic", "whirlwind"] }, "ledian": { "level": 97, "moves": ["encore", "lightscreen", "reflect", "roost", "toxic", "uturn"] }, "ariados": { "level": 94, "moves": ["poisonjab", "suckerpunch", "toxicspikes", "xscissor"] }, "crobat": { "level": 83, "moves": ["bravebird", "heatwave", "roost", "superfang", "taunt", "toxic", "uturn"] }, "lanturn": { "level": 84, "moves": ["healbell", "icebeam", "scald", "thunderbolt", "thunderwave", "voltswitch"] }, "xatu": { "level": 83, "moves": ["heatwave", "psychic", "roost", "thunderwave", "toxic", "uturn"] }, "ampharos": { "level": 87, "moves": ["agility", "focusblast", "healbell", "hiddenpowergrass", "hiddenpowerice", "thunderbolt", "toxic", "voltswitch"] }, "bellossom": { "level": 91, "moves": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "leafstorm", "leechseed", "sleeppowder", "stunspore", "synthesis"] }, "azumarill": { "level": 83, "moves": ["aquajet", "doubleedge", "icepunch", "superpower", "waterfall"] }, "sudowoodo": { "level": 90, "moves": ["earthquake", "stealthrock", "stoneedge", "suckerpunch", "toxic", "woodhammer"] }, "politoed": { "level": 82, "moves": ["encore", "focusblast", "hiddenpowergrass", "hypnosis", "icebeam", "protect", "scald", "toxic"] }, "jumpluff": { "level": 88, "moves": ["acrobatics", "encore", "energyball", "leechseed", "sleeppowder", "uturn"] }, "sunflora": { "level": 94, "moves": ["earthpower", "encore", "gigadrain", "hiddenpowerrock", "solarbeam", "sunnyday"] }, "quagsire": { "level": 84, "moves": ["earthquake", "encore", "recover", "scald", "toxic"] }, "espeon": { "level": 81, "moves": ["calmmind", "hiddenpowerfire", "morningsun", "psychic", "psyshock", "signalbeam"] }, "umbreon": { "level": 83, "moves": ["foulplay", "protect", "toxic", "wish"] }, "murkrow": { "level": 88, "moves": ["foulplay", "roost", "taunt", "thunderwave", "toxic"] }, "slowking": { "level": 84, "moves": ["calmmind", "fireblast", "grassknot", "icebeam", "psychic", "slackoff", "surf", "trickroom"] }, "unown": { "level": 100, "moves": ["hiddenpowerpsychic"] }, "wobbuffet": { "level": 85, "moves": ["counter", "destinybond", "encore", "mirrorcoat"] }, "girafarig": { "level": 90, "moves": ["calmmind", "hiddenpowerfire", "hypervoice", "psychic", "psyshock", "thunderbolt"] }, "forretress": { "level": 80, "moves": ["gyroball", "rapidspin", "spikes", "stealthrock", "toxic", "voltswitch"] }, "dunsparce": { "level": 91, "moves": ["bite", "bodyslam", "coil", "glare", "headbutt", "rockslide", "roost"] }, "gligar": { "level": 82, "moves": ["earthquake", "roost", "stealthrock", "taunt", "toxic", "uturn"] }, "steelix": { "level": 84, "moves": ["curse", "earthquake", "gyroball", "roar", "stealthrock", "stoneedge", "toxic"] }, "granbull": { "level": 90, "moves": ["closecombat", "crunch", "healbell", "return", "thunderwave", "toxic"] }, "qwilfish": { "level": 85, "moves": ["destinybond", "poisonjab", "spikes", "taunt", "thunderwave", "toxicspikes", "waterfall"] }, "scizor": { "level": 80, "moves": ["bugbite", "bulletpunch", "pursuit", "roost", "superpower", "swordsdance", "uturn"] }, "shuckle": { "level": 90, "moves": ["encore", "knockoff", "protect", "stealthrock", "toxic"] }, "heracross": { "level": 81, "moves": ["closecombat", "earthquake", "facade", "megahorn", "stoneedge"] }, "ursaring": { "level": 86, "moves": ["closecombat", "crunch", "earthquake", "facade", "protect", "swordsdance"] }, "magcargo": { "level": 91, "moves": ["hiddenpowerrock", "lavaplume", "recover", "stealthrock", "toxic"] }, "corsola": { "level": 91, "moves": ["powergem", "recover", "scald", "stealthrock", "toxic"] }, "octillery": { "level": 90, "moves": ["energyball", "fireblast", "hydropump", "icebeam", "thunderwave"] }, "delibird": { "level": 100, "moves": ["aerialace", "icebeam", "iceshard", "rapidspin"] }, "mantine": { "level": 89, "moves": ["airslash", "hydropump", "icebeam", "raindance", "rest", "scald", "sleeptalk"] }, "skarmory": { "level": 79, "moves": ["bravebird", "roost", "spikes", "stealthrock", "whirlwind"] }, "houndoom": { "level": 82, "moves": ["darkpulse", "fireblast", "hiddenpowergrass", "nastyplot", "suckerpunch"] }, "kingdra": { "level": 82, "moves": ["dracometeor", "dragondance", "hiddenpowerelectric", "hydropump", "icebeam", "outrage", "raindance", "waterfall"] }, "donphan": { "level": 82, "moves": ["earthquake", "headsmash", "iceshard", "rapidspin", "seedbomb", "stealthrock"] }, "porygon2": { "level": 82, "moves": ["discharge", "icebeam", "recover", "toxic", "triattack"] }, "stantler": { "level": 90, "moves": ["doubleedge", "earthquake", "jumpkick", "megahorn", "suckerpunch"] }, "smeargle": { "level": 84, "moves": ["memento", "spikes", "spore", "stealthrock", "whirlwind"] }, "hitmontop": { "level": 85, "moves": ["closecombat", "machpunch", "rapidspin", "stoneedge", "suckerpunch", "toxic"] }, "miltank": { "level": 84, "moves": ["bodyslam", "earthquake", "healbell", "milkdrink", "stealthrock", "toxic"] }, "blissey": { "level": 82, "moves": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic"] }, "raikou": { "level": 80, "moves": ["aurasphere", "calmmind", "hiddenpowerice", "substitute", "thunderbolt", "voltswitch"] }, "entei": { "level": 83, "moves": ["bulldoze", "extremespeed", "flareblitz", "hiddenpowergrass", "stoneedge"] }, "suicune": { "level": 82, "moves": ["calmmind", "hiddenpowerelectric", "hydropump", "icebeam", "rest", "roar", "scald", "sleeptalk"] }, "tyranitar": { "level": 80, "moves": ["crunch", "fireblast", "pursuit", "stealthrock", "stoneedge", "superpower"] }, "lugia": { "level": 74, "moves": ["aeroblast", "earthquake", "roost", "substitute", "toxic", "whirlwind"] }, "hooh": { "level": 74, "moves": ["bravebird", "earthquake", "roost", "sacredfire", "substitute", "toxic"] }, "celebi": { "level": 80, "moves": ["earthpower", "gigadrain", "hiddenpowerice", "leafstorm", "nastyplot", "psychic", "recover", "stealthrock", "uturn"] }, "sceptile": { "level": 84, "moves": ["acrobatics", "earthquake", "leafblade", "substitute", "swordsdance"] }, "blaziken": { "level": 76, "moves": ["flareblitz", "highjumpkick", "protect", "stoneedge", "swordsdance"] }, "swampert": { "level": 82, "moves": ["earthquake", "icebeam", "protect", "roar", "scald", "stealthrock", "toxic"] }, "mightyena": { "level": 91, "moves": ["crunch", "facade", "firefang", "howl", "suckerpunch"] }, "linoone": { "level": 86, "moves": ["bellydrum", "extremespeed", "seedbomb", "shadowclaw"] }, "beautifly": { "level": 94, "moves": ["bugbuzz", "hiddenpowerground", "psychic", "quiverdance"] }, "dustox": { "level": 90, "moves": ["bugbuzz", "quiverdance", "roost", "sludgebomb"] }, "ludicolo": { "level": 86, "moves": ["gigadrain", "hydropump", "icebeam", "raindance", "scald"] }, "shiftry": { "level": 88, "moves": ["darkpulse", "hiddenpowerfire", "leafstorm", "naturepower", "seedbomb", "suckerpunch", "swordsdance"] }, "swellow": { "level": 86, "moves": ["bravebird", "facade", "protect", "quickattack", "uturn"] }, "pelipper": { "level": 90, "moves": ["hurricane", "icebeam", "roost", "scald", "tailwind", "toxic", "uturn"] }, "gardevoir": { "level": 86, "moves": ["calmmind", "focusblast", "painsplit", "psychic", "substitute", "thunderbolt", "trick", "willowisp"] }, "masquerain": { "level": 90, "moves": ["airslash", "bugbuzz", "hydropump", "quiverdance", "roost"] }, "breloom": { "level": 80, "moves": ["bulletseed", "machpunch", "spore", "stoneedge", "swordsdance"] }, "vigoroth": { "level": 87, "moves": ["bulkup", "earthquake", "return", "slackoff", "taunt", "toxic"] }, "slaking": { "level": 86, "moves": ["earthquake", "nightslash", "pursuit", "retaliate", "return"] }, "ninjask": { "level": 87, "moves": ["aerialace", "substitute", "swordsdance", "xscissor"] }, "shedinja": { "level": 90, "moves": ["shadowclaw", "shadowsneak", "swordsdance", "willowisp", "xscissor"] }, "exploud": { "level": 90, "moves": ["fireblast", "focusblast", "hypervoice", "lowkick", "surf"] }, "hariyama": { "level": 84, "moves": ["bulletpunch", "closecombat", "facade", "fakeout", "stoneedge"] }, "delcatty": { "level": 92, "moves": ["doubleedge", "fakeout", "icebeam", "suckerpunch", "thunderwave"] }, "sableye": { "level": 85, "moves": ["foulplay", "recover", "seismictoss", "taunt", "willowisp"] }, "mawile": { "level": 91, "moves": ["firefang", "ironhead", "stealthrock", "suckerpunch", "swordsdance"] }, "aggron": { "level": 85, "moves": ["aquatail", "earthquake", "headsmash", "heavyslam", "rockpolish", "stealthrock", "thunderwave"] }, "medicham": { "level": 84, "moves": ["bulletpunch", "highjumpkick", "icepunch", "thunderpunch", "trick", "zenheadbutt"] }, "manectric": { "level": 84, "moves": ["flamethrower", "hiddenpowerice", "overheat", "switcheroo", "thunderbolt", "voltswitch"] }, "plusle": { "level": 90, "moves": ["grassknot", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"] }, "minun": { "level": 90, "moves": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"] }, "volbeat": { "level": 90, "moves": ["bugbuzz", "encore", "roost", "thunderwave", "uturn"] }, "illumise": { "level": 90, "moves": ["bugbuzz", "encore", "roost", "thunderwave", "wish"] }, "swalot": { "level": 91, "moves": ["earthquake", "encore", "painsplit", "protect", "sludgebomb", "toxic"] }, "sharpedo": { "level": 82, "moves": ["crunch", "earthquake", "icebeam", "protect", "waterfall", "zenheadbutt"] }, "wailord": { "level": 90, "moves": ["hiddenpowergrass", "hydropump", "icebeam", "surf", "waterspout"] }, "camerupt": { "level": 87, "moves": ["earthquake", "hiddenpowergrass", "lavaplume", "roar", "stealthrock"] }, "torkoal": { "level": 87, "moves": ["earthquake", "lavaplume", "protect", "rapidspin", "stealthrock", "toxic", "yawn"] }, "grumpig": { "level": 90, "moves": ["focusblast", "healbell", "psychic", "shadowball", "thunderwave", "trick", "whirlwind"] }, "spinda": { "level": 96, "moves": ["return", "suckerpunch", "superpower", "trickroom"] }, "flygon": { "level": 82, "moves": ["earthquake", "firepunch", "outrage", "roost", "stoneedge", "superpower", "uturn"] }, "cacturne": { "level": 87, "moves": ["drainpunch", "seedbomb", "spikes", "substitute", "suckerpunch", "swordsdance"] }, "altaria": { "level": 87, "moves": ["dracometeor", "dragondance", "earthquake", "fireblast", "healbell", "outrage", "roost"] }, "zangoose": { "level": 86, "moves": ["closecombat", "facade", "nightslash", "quickattack", "swordsdance"] }, "seviper": { "level": 90, "moves": ["earthquake", "flamethrower", "gigadrain", "sludgebomb", "suckerpunch", "switcheroo"] }, "lunatone": { "level": 90, "moves": ["earthpower", "hiddenpowerrock", "moonlight", "psychic", "stealthrock", "toxic"] }, "solrock": { "level": 90, "moves": ["explosion", "lightscreen", "morningsun", "reflect", "rockslide", "stealthrock", "willowisp"] }, "whiscash": { "level": 89, "moves": ["dragondance", "earthquake", "icebeam", "waterfall"] }, "crawdaunt": { "level": 85, "moves": ["crunch", "dragondance", "superpower", "waterfall"] }, "claydol": { "level": 83, "moves": ["earthquake", "icebeam", "psychic", "rapidspin", "stealthrock", "toxic"] }, "cradily": { "level": 87, "moves": ["earthquake", "recover", "rockslide", "seedbomb", "stealthrock", "swordsdance", "toxic"] }, "armaldo": { "level": 87, "moves": ["aquatail", "earthquake", "rapidspin", "stealthrock", "stoneedge", "swordsdance", "xscissor"] }, "milotic": { "level": 82, "moves": ["dragontail", "haze", "icebeam", "recover", "scald", "toxic"] }, "castformsunny": { "level": 99, "moves": ["icebeam", "solarbeam", "sunnyday", "weatherball"] }, "castformrainy": { "level": 99, "moves": ["icebeam", "raindance", "thunder", "weatherball"] }, "kecleon": { "level": 91, "moves": ["foulplay", "recover", "stealthrock", "thunderwave", "toxic"] }, "banette": { "level": 91, "moves": ["pursuit", "shadowclaw", "shadowsneak", "trick", "willowisp"] }, "dusclops": { "level": 84, "moves": ["nightshade", "rest", "sleeptalk", "willowisp"] }, "tropius": { "level": 90, "moves": ["airslash", "leechseed", "protect", "substitute", "toxic"] }, "chimecho": { "level": 92, "moves": ["calmmind", "healingwish", "psychic", "recover", "shadowball", "toxic", "yawn"] }, "absol": { "level": 85, "moves": ["fireblast", "nightslash", "psychocut", "pursuit", "suckerpunch", "superpower", "swordsdance"] }, "glalie": { "level": 90, "moves": ["earthquake", "explosion", "icebeam", "spikes", "taunt"] }, "walrein": { "level": 90, "moves": ["encore", "icebeam", "protect", "roar", "surf", "toxic"] }, "huntail": { "level": 86, "moves": ["icebeam", "return", "shellsmash", "waterfall"] }, "gorebyss": { "level": 82, "moves": ["hiddenpowergrass", "hydropump", "icebeam", "shellsmash"] }, "relicanth": { "level": 88, "moves": ["doubleedge", "earthquake", "headsmash", "stealthrock", "waterfall"] }, "luvdisc": { "level": 100, "moves": ["icebeam", "protect", "scald", "sweetkiss", "toxic"] }, "salamence": { "level": 79, "moves": ["aquatail", "brickbreak", "dracometeor", "dragondance", "earthquake", "fireblast", "outrage", "roost"] }, "metagross": { "level": 81, "moves": ["agility", "bulletpunch", "earthquake", "meteormash", "pursuit", "stealthrock", "zenheadbutt"] }, "regirock": { "level": 86, "moves": ["drainpunch", "protect", "rockslide", "stealthrock", "thunderwave", "toxic"] }, "regice": { "level": 86, "moves": ["focusblast", "icebeam", "rest", "rockpolish", "sleeptalk", "thunderbolt"] }, "registeel": { "level": 82, "moves": ["curse", "ironhead", "protect", "rest", "sleeptalk", "stealthrock", "toxic"] }, "latias": { "level": 73, "moves": ["calmmind", "dracometeor", "psyshock", "roost"] }, "latios": { "level": 73, "moves": ["calmmind", "dracometeor", "psyshock", "roost"] }, "kyogre": { "level": 73, "moves": ["calmmind", "icebeam", "rest", "sleeptalk", "surf", "thunder", "waterspout"] }, "groudon": { "level": 76, "moves": ["earthquake", "firepunch", "stealthrock", "stoneedge", "swordsdance", "thunderwave"] }, "rayquaza": { "level": 75, "moves": ["dracometeor", "dragondance", "earthquake", "extremespeed", "outrage", "swordsdance", "vcreate"] }, "jirachi": { "level": 79, "moves": ["bodyslam", "firepunch", "icepunch", "ironhead", "substitute", "uturn", "wish"] }, "deoxys": { "level": 75, "moves": ["extremespeed", "hiddenpowerfire", "icebeam", "psychoboost", "stealthrock", "superpower"] }, "deoxysattack": { "level": 74, "moves": ["extremespeed", "hiddenpowerfire", "icebeam", "psychoboost", "stealthrock", "superpower"] }, "deoxysdefense": { "level": 81, "moves": ["magiccoat", "recover", "seismictoss", "spikes", "taunt", "toxic"] }, "deoxysspeed": { "level": 76, "moves": ["icebeam", "lightscreen", "psychoboost", "reflect", "spikes", "stealthrock", "superpower", "taunt"] }, "torterra": { "level": 88, "moves": ["earthquake", "rockpolish", "stealthrock", "stoneedge", "synthesis", "woodhammer"] }, "infernape": { "level": 81, "moves": ["closecombat", "flareblitz", "hiddenpowerice", "machpunch", "overheat", "swordsdance", "thunderpunch", "uturn"] }, "empoleon": { "level": 82, "moves": ["agility", "grassknot", "hydropump", "icebeam", "protect", "scald", "stealthrock", "toxic"] }, "staraptor": { "level": 82, "moves": ["bravebird", "closecombat", "doubleedge", "quickattack", "roost", "uturn"] }, "bibarel": { "level": 90, "moves": ["curse", "quickattack", "rest", "waterfall"] }, "kricketune": { "level": 97, "moves": ["brickbreak", "bugbite", "nightslash", "return", "swordsdance"] }, "luxray": { "level": 90, "moves": ["crunch", "facade", "icefang", "superpower", "voltswitch", "wildcharge"] }, "roserade": { "level": 83, "moves": ["gigadrain", "hiddenpowerfire", "leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"] }, "rampardos": { "level": 89, "moves": ["crunch", "earthquake", "firepunch", "headsmash", "rockpolish", "superpower"] }, "bastiodon": { "level": 88, "moves": ["metalburst", "protect", "roar", "rockblast", "stealthrock", "toxic"] }, "wormadam": { "level": 96, "moves": ["gigadrain", "hiddenpowerrock", "leafstorm", "protect", "signalbeam", "toxic"] }, "wormadamsandy": { "level": 90, "moves": ["earthquake", "protect", "rockblast", "stealthrock", "toxic"] }, "wormadamtrash": { "level": 90, "moves": ["ironhead", "protect", "stealthrock", "toxic"] }, "mothim": { "level": 92, "moves": ["airslash", "bugbuzz", "hiddenpowerground", "quiverdance", "substitute"] }, "vespiquen": { "level": 95, "moves": ["attackorder", "protect", "roost", "substitute", "toxic"] }, "pachirisu": { "level": 91, "moves": ["protect", "superfang", "thunderwave", "toxic", "voltswitch"] }, "floatzel": { "level": 86, "moves": ["aquajet", "bulkup", "crunch", "icepunch", "switcheroo", "taunt", "waterfall"] }, "cherrim": { "level": 91, "moves": ["energyball", "healingwish", "hiddenpowerrock", "hiddenpowerfire", "naturepower"] }, "gastrodon": { "level": 82, "moves": ["earthquake", "icebeam", "recover", "scald", "toxic"] }, "ambipom": { "level": 82, "moves": ["fakeout", "lowkick", "pursuit", "return", "switcheroo", "uturn"] }, "drifblim": { "level": 85, "moves": ["acrobatics", "destinybond", "disable", "shadowball", "substitute", "willowisp"] }, "lopunny": { "level": 90, "moves": ["firepunch", "healingwish", "icepunch", "jumpkick", "return", "switcheroo", "thunderpunch"] }, "mismagius": { "level": 82, "moves": ["hiddenpowerfighting", "nastyplot", "shadowball", "substitute", "taunt", "thunderbolt", "willowisp"] }, "honchkrow": { "level": 82, "moves": ["bravebird", "heatwave", "pursuit", "roost", "substitute", "suckerpunch", "superpower"] }, "purugly": { "level": 89, "moves": ["fakeout", "hypnosis", "return", "suckerpunch", "uturn"] }, "skuntank": { "level": 86, "moves": ["crunch", "fireblast", "poisonjab", "pursuit", "suckerpunch", "taunt"] }, "bronzong": { "level": 81, "moves": ["earthquake", "hypnosis", "psychic", "stealthrock", "toxic"] }, "chatot": { "level": 90, "moves": ["chatter", "heatwave", "hiddenpowerground", "hypervoice", "nastyplot", "substitute", "uturn"] }, "spiritomb": { "level": 84, "moves": ["calmmind", "darkpulse", "foulplay", "rest", "shadowsneak", "sleeptalk", "willowisp"] }, "garchomp": { "level": 76, "moves": ["aquatail", "earthquake", "fireblast", "outrage", "stealthrock", "stoneedge", "swordsdance"] }, "lucario": { "level": 82, "moves": ["closecombat", "crunch", "extremespeed", "icepunch", "swordsdance"] }, "hippowdon": { "level": 82, "moves": ["earthquake", "slackoff", "stealthrock", "stoneedge", "toxic", "whirlwind"] }, "drapion": { "level": 84, "moves": ["aquatail", "crunch", "earthquake", "poisonjab", "pursuit", "swordsdance", "taunt", "toxicspikes"] }, "toxicroak": { "level": 80, "moves": ["drainpunch", "icepunch", "poisonjab", "substitute", "suckerpunch", "swordsdance"] }, "carnivine": { "level": 92, "moves": ["leechseed", "powerwhip", "return", "sleeppowder", "substitute", "swordsdance"] }, "lumineon": { "level": 89, "moves": ["icebeam", "protect", "scald", "toxic", "uturn"] }, "abomasnow": { "level": 83, "moves": ["blizzard", "earthquake", "hiddenpowerfire", "iceshard", "leechseed", "woodhammer"] }, "weavile": { "level": 82, "moves": ["icepunch", "iceshard", "lowkick", "nightslash", "pursuit", "swordsdance"] }, "magnezone": { "level": 81, "moves": ["flashcannon", "hiddenpowerfire", "thunderbolt", "toxic", "voltswitch"] }, "lickilicky": { "level": 86, "moves": ["bodyslam", "earthquake", "healbell", "powerwhip", "protect", "swordsdance", "toxic", "wish"] }, "rhyperior": { "level": 82, "moves": ["earthquake", "icepunch", "megahorn", "rockpolish", "stoneedge"] }, "tangrowth": { "level": 84, "moves": ["earthquake", "hiddenpowerfire", "leechseed", "powerwhip", "rockslide", "sleeppowder", "synthesis"] }, "electivire": { "level": 84, "moves": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"] }, "magmortar": { "level": 84, "moves": ["fireblast", "focusblast", "hiddenpowergrass", "substitute", "thunderbolt"] }, "togekiss": { "level": 82, "moves": ["airslash", "aurasphere", "nastyplot", "roost", "thunderwave"] }, "yanmega": { "level": 82, "moves": ["airslash", "bugbuzz", "hiddenpowerground", "protect", "uturn"] }, "leafeon": { "level": 89, "moves": ["leafblade", "return", "swordsdance", "xscissor"] }, "glaceon": { "level": 90, "moves": ["hiddenpowerground", "icebeam", "protect", "shadowball", "toxic", "wish"] }, "gliscor": { "level": 80, "moves": ["earthquake", "facade", "protect", "roost", "substitute", "swordsdance", "taunt", "toxic"] }, "mamoswine": { "level": 79, "moves": ["earthquake", "iceshard", "iciclecrash", "stealthrock", "superpower"] }, "porygonz": { "level": 82, "moves": ["agility", "darkpulse", "hiddenpowerfighting", "icebeam", "nastyplot", "thunderbolt", "triattack", "trick"] }, "gallade": { "level": 84, "moves": ["closecombat", "drainpunch", "nightslash", "substitute", "swordsdance", "trick", "zenheadbutt"] }, "probopass": { "level": 86, "moves": ["earthpower", "powergem", "stealthrock", "toxic", "voltswitch"] }, "dusknoir": { "level": 84, "moves": ["earthquake", "icepunch", "painsplit", "shadowsneak", "trick", "willowisp"] }, "froslass": { "level": 82, "moves": ["destinybond", "icebeam", "shadowball", "spikes", "taunt", "thunderwave"] }, "rotom": { "level": 84, "moves": ["hiddenpowerice", "painsplit", "shadowball", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] }, "rotomheat": { "level": 82, "moves": ["hiddenpowergrass", "overheat", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"] }, "rotomwash": { "level": 81, "moves": ["hiddenpowerice", "hydropump", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"] }, "rotomfrost": { "level": 86, "moves": ["blizzard", "hiddenpowerfire", "painsplit", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] }, "rotomfan": { "level": 86, "moves": ["airslash", "painsplit", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] }, "rotommow": { "level": 84, "moves": ["hiddenpowerfire", "leafstorm", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"] }, "uxie": { "level": 84, "moves": ["healbell", "lightscreen", "memento", "psychic", "reflect", "stealthrock", "thunderwave", "uturn", "yawn"] }, "mesprit": { "level": 83, "moves": ["calmmind", "hiddenpowerfire", "icebeam", "psychic", "stealthrock", "thunderbolt", "trick", "uturn"] }, "azelf": { "level": 81, "moves": ["energyball", "fireblast", "nastyplot", "psychic", "stealthrock", "taunt", "trick", "uturn"] }, "dialga": { "level": 72, "moves": ["aurasphere", "dracometeor", "dragontail", "fireblast", "stealthrock", "thunderbolt"] }, "palkia": { "level": 74, "moves": ["dracometeor", "dragontail", "fireblast", "hydropump", "spacialrend", "surf", "thunderbolt"] }, "heatran": { "level": 80, "moves": ["earthpower", "fireblast", "flashcannon", "hiddenpowerice", "lavaplume", "protect", "roar", "stealthrock", "toxic"] }, "regigigas": { "level": 85, "moves": ["confuseray", "return", "rockslide", "substitute", "thunderwave"] }, "giratinaorigin": { "level": 75, "moves": ["dracometeor", "earthquake", "hiddenpowerfire", "shadowsneak", "willowisp"] }, "giratina": { "level": 73, "moves": ["calmmind", "dragonpulse", "rest", "sleeptalk", "willowisp"] }, "cresselia": { "level": 82, "moves": ["calmmind", "hiddenpowerfighting", "moonlight", "psychic", "thunderwave", "toxic"] }, "phione": { "level": 90, "moves": ["healbell", "icebeam", "scald", "toxic", "uturn"] }, "manaphy": { "level": 76, "moves": ["energyball", "icebeam", "surf", "tailglow"] }, "darkrai": { "level": 72, "moves": ["darkpulse", "darkvoid", "focusblast", "nastyplot", "substitute"] }, "shaymin": { "level": 82, "moves": ["earthpower", "hiddenpowerfire", "leechseed", "psychic", "rest", "seedflare"] }, "shayminsky": { "level": 74, "moves": ["airslash", "earthpower", "hiddenpowerfire", "hiddenpowerice", "leechseed", "seedflare", "substitute"] }, "arceus": { "level": 72, "moves": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"] }, "arceusbug": { "level": 72, "moves": ["earthquake", "recover", "stoneedge", "swordsdance", "xscissor"] }, "arceusdark": { "level": 72, "moves": ["calmmind", "judgment", "recover", "refresh"] }, "arceusdragon": { "level": 72, "moves": ["earthquake", "extremespeed", "outrage", "recover", "swordsdance"] }, "arceuselectric": { "level": 72, "moves": ["calmmind", "icebeam", "judgment", "recover"] }, "arceusfighting": { "level": 72, "moves": ["calmmind", "darkpulse", "icebeam", "judgment", "recover"] }, "arceusfire": { "level": 72, "moves": ["calmmind", "fireblast", "judgment", "recover", "thunderbolt"] }, "arceusflying": { "level": 72, "moves": ["calmmind", "earthpower", "judgment", "recover", "substitute"] }, "arceusghost": { "level": 72, "moves": ["calmmind", "focusblast", "judgment", "recover", "roar", "willowisp"] }, "arceusgrass": { "level": 72, "moves": ["calmmind", "earthpower", "icebeam", "judgment", "recover", "thunderwave"] }, "arceusground": { "level": 72, "moves": ["calmmind", "icebeam", "judgment", "recover", "willowisp"] }, "arceusice": { "level": 72, "moves": ["calmmind", "fireblast", "icebeam", "recover", "thunderbolt"] }, "arceuspoison": { "level": 72, "moves": ["flamethrower", "icebeam", "recover", "sludgebomb", "stealthrock", "willowisp"] }, "arceuspsychic": { "level": 72, "moves": ["calmmind", "darkpulse", "focusblast", "judgment", "recover"] }, "arceusrock": { "level": 72, "moves": ["earthquake", "recover", "stoneedge", "swordsdance"] }, "arceussteel": { "level": 72, "moves": ["calmmind", "judgment", "recover", "thunderbolt", "willowisp"] }, "arceuswater": { "level": 72, "moves": ["brickbreak", "extremespeed", "recover", "swordsdance", "waterfall"] }, "victini": { "level": 81, "moves": ["blueflare", "boltstrike", "energyball", "focusblast", "glaciate", "trick", "uturn", "vcreate"] }, "serperior": { "level": 86, "moves": ["calmmind", "dragonpulse", "gigadrain", "hiddenpowerfire", "leechseed", "substitute"] }, "emboar": { "level": 84, "moves": ["earthquake", "fireblast", "flareblitz", "grassknot", "headsmash", "superpower", "wildcharge"] }, "samurott": { "level": 86, "moves": ["aquajet", "grassknot", "icebeam", "megahorn", "superpower", "swordsdance", "waterfall"] }, "watchog": { "level": 90, "moves": ["crunch", "hypnosis", "return", "substitute", "superfang", "swordsdance"] }, "stoutland": { "level": 88, "moves": ["crunch", "return", "superpower", "thunderwave", "wildcharge"] }, "liepard": { "level": 86, "moves": ["darkpulse", "encore", "hiddenpowerfighting", "nastyplot", "thunderwave"] }, "simisage": { "level": 88, "moves": ["focusblast", "gigadrain", "hiddenpowerrock", "leechseed", "nastyplot", "substitute"] }, "simisear": { "level": 88, "moves": ["fireblast", "focusblast", "grassknot", "hiddenpowerrock", "nastyplot", "substitute"] }, "simipour": { "level": 86, "moves": ["focusblast", "hiddenpowergrass", "hydropump", "icebeam", "nastyplot", "substitute"] }, "musharna": { "level": 86, "moves": ["calmmind", "healbell", "hiddenpowerground", "moonlight", "psychic", "signalbeam", "toxic", "trickroom"] }, "unfezant": { "level": 89, "moves": ["hypnosis", "pluck", "return", "roost", "tailwind", "uturn"] }, "zebstrika": { "level": 88, "moves": ["hiddenpowergrass", "overheat", "thunderbolt", "voltswitch", "wildcharge"] }, "gigalith": { "level": 86, "moves": ["earthquake", "explosion", "rockblast", "stealthrock", "stoneedge", "superpower"] }, "swoobat": { "level": 88, "moves": ["airslash", "calmmind", "heatwave", "roost", "storedpower"] }, "excadrill": { "level": 80, "moves": ["earthquake", "ironhead", "rapidspin", "rockslide", "swordsdance"] }, "audino": { "level": 90, "moves": ["doubleedge", "healbell", "magiccoat", "protect", "toxic", "wish"] }, "conkeldurr": { "level": 80, "moves": ["bulkup", "drainpunch", "icepunch", "machpunch", "thunderpunch"] }, "seismitoad": { "level": 86, "moves": ["earthquake", "hydropump", "raindance", "sludgebomb", "stealthrock", "toxic"] }, "throh": { "level": 88, "moves": ["bulkup", "icepunch", "payback", "rest", "sleeptalk", "stormthrow"] }, "sawk": { "level": 85, "moves": ["bulkup", "closecombat", "earthquake", "icepunch", "stoneedge"] }, "leavanny": { "level": 90, "moves": ["leafblade", "swordsdance", "synthesis", "xscissor"] }, "scolipede": { "level": 86, "moves": ["aquatail", "earthquake", "megahorn", "rockslide", "spikes", "swordsdance"] }, "whimsicott": { "level": 84, "moves": ["encore", "gigadrain", "leechseed", "stunspore", "taunt", "uturn"] }, "lilligant": { "level": 84, "moves": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "petaldance", "quiverdance", "sleeppowder"] }, "basculinbluestriped": { "level": 86, "moves": ["aquajet", "crunch", "superpower", "waterfall", "zenheadbutt"] }, "basculin": { "level": 86, "moves": ["aquajet", "crunch", "superpower", "waterfall", "zenheadbutt"] }, "krookodile": { "level": 81, "moves": ["crunch", "earthquake", "pursuit", "stealthrock", "stoneedge", "superpower"] }, "darmanitan": { "level": 82, "moves": ["earthquake", "flareblitz", "rockslide", "superpower", "uturn"] }, "maractus": { "level": 91, "moves": ["gigadrain", "hiddenpowerfire", "leechseed", "spikes", "toxic"] }, "crustle": { "level": 84, "moves": ["earthquake", "rockblast", "shellsmash", "spikes", "stealthrock", "stoneedge", "xscissor"] }, "scrafty": { "level": 81, "moves": ["crunch", "dragondance", "highjumpkick", "icepunch", "zenheadbutt"] }, "sigilyph": { "level": 84, "moves": ["cosmicpower", "psychoshift", "roost", "storedpower"] }, "cofagrigus": { "level": 85, "moves": ["haze", "hiddenpowerfighting", "nastyplot", "painsplit", "shadowball", "trickroom", "willowisp"] }, "carracosta": { "level": 86, "moves": ["aquajet", "earthquake", "icebeam", "shellsmash", "stealthrock", "stoneedge", "waterfall"] }, "archeops": { "level": 82, "moves": ["acrobatics", "earthquake", "headsmash", "pluck", "roost", "stoneedge", "uturn"] }, "garbodor": { "level": 87, "moves": ["drainpunch", "gunkshot", "haze", "painsplit", "spikes", "toxicspikes"] }, "zoroark": { "moves": ["darkpulse", "flamethrower", "focusblast", "nastyplot", "uturn"] }, "cinccino": { "level": 81, "moves": ["bulletseed", "rockblast", "tailslap", "uturn"] }, "gothitelle": { "level": 86, "moves": ["calmmind", "hiddenpowerfighting", "psychic", "rest", "thunderbolt", "trick"] }, "reuniclus": { "level": 81, "moves": ["calmmind", "focusblast", "psychic", "recover", "shadowball", "trickroom"] }, "swanna": { "level": 88, "moves": ["hurricane", "icebeam", "raindance", "roost", "surf"] }, "vanilluxe": { "level": 90, "moves": ["autotomize", "explosion", "flashcannon", "hiddenpowerground", "icebeam"] }, "sawsbuck": { "level": 86, "moves": ["doubleedge", "hornleech", "megahorn", "naturepower", "return", "substitute", "swordsdance"] }, "emolga": { "level": 89, "moves": ["acrobatics", "encore", "roost", "thunderbolt", "toxic", "uturn"] }, "escavalier": { "level": 84, "moves": ["ironhead", "megahorn", "pursuit", "return", "swordsdance"] }, "amoonguss": { "level": 85, "moves": ["clearsmog", "gigadrain", "hiddenpowerfire", "spore", "stunspore", "synthesis"] }, "jellicent": { "level": 81, "moves": ["icebeam", "recover", "scald", "shadowball", "toxic", "willowisp"] }, "alomomola": { "level": 86, "moves": ["protect", "scald", "toxic", "waterfall", "wish"] }, "galvantula": { "level": 83, "moves": ["bugbuzz", "gigadrain", "hiddenpowerice", "thunder", "voltswitch"] }, "ferrothorn": { "level": 78, "moves": ["gyroball", "leechseed", "powerwhip", "protect", "spikes", "stealthrock", "toxic"] }, "klinklang": { "level": 84, "moves": ["geargrind", "return", "shiftgear", "substitute", "wildcharge"] }, "eelektross": { "level": 86, "moves": ["flamethrower", "gigadrain", "hiddenpowerice", "superpower", "thunderbolt", "uturn"] }, "beheeyem": { "level": 88, "moves": ["hiddenpowerfighting", "psychic", "thunderbolt", "trick", "trickroom"] }, "chandelure": { "level": 82, "moves": ["calmmind", "energyball", "fireblast", "hiddenpowerfighting", "shadowball", "substitute"] }, "haxorus": { "level": 78, "moves": ["aquatail", "dragondance", "earthquake", "outrage", "superpower", "swordsdance"] }, "beartic": { "level": 90, "moves": ["aquajet", "iciclecrash", "stoneedge", "superpower", "swordsdance"] }, "cryogonal": { "level": 85, "moves": ["hiddenpowerground", "icebeam", "rapidspin", "recover", "toxic"] }, "accelgor": { "level": 84, "moves": ["bugbuzz", "encore", "focusblast", "gigadrain", "hiddenpowerrock", "spikes", "yawn"] }, "stunfisk": { "level": 88, "moves": ["discharge", "earthpower", "foulplay", "rest", "scald", "sleeptalk", "stealthrock", "toxic"] }, "mienshao": { "level": 82, "moves": ["highjumpkick", "stoneedge", "substitute", "swordsdance", "uturn"] }, "druddigon": { "level": 84, "moves": ["dragontail", "earthquake", "glare", "outrage", "stealthrock", "suckerpunch", "superpower"] }, "golurk": { "level": 85, "moves": ["drainpunch", "earthquake", "icepunch", "rockpolish", "shadowpunch", "stealthrock"] }, "bisharp": { "level": 82, "moves": ["ironhead", "lowkick", "nightslash", "suckerpunch", "swordsdance"] }, "bouffalant": { "level": 85, "moves": ["earthquake", "headcharge", "megahorn", "stoneedge", "swordsdance"] }, "braviary": { "level": 86, "moves": ["bravebird", "bulkup", "return", "roost", "superpower", "uturn"] }, "mandibuzz": { "level": 86, "moves": ["bravebird", "foulplay", "roost", "taunt", "toxic", "whirlwind"] }, "heatmor": { "level": 90, "moves": ["fireblast", "gigadrain", "suckerpunch", "superpower"] }, "durant": { "level": 81, "moves": ["honeclaws", "ironhead", "rockslide", "superpower", "xscissor"] }, "hydreigon": { "level": 80, "moves": ["darkpulse", "dracometeor", "flamethrower", "focusblast", "roost", "uturn"] }, "volcarona": { "level": 79, "moves": ["bugbuzz", "fierydance", "fireblast", "gigadrain", "hiddenpowerground", "quiverdance", "roost"] }, "cobalion": { "level": 79, "moves": ["closecombat", "hiddenpowerice", "ironhead", "stealthrock", "stoneedge", "swordsdance", "taunt", "thunderwave", "voltswitch"] }, "terrakion": { "level": 78, "moves": ["closecombat", "earthquake", "quickattack", "stealthrock", "stoneedge", "swordsdance"] }, "virizion": { "level": 82, "moves": ["closecombat", "leafblade", "stoneedge", "swordsdance"] }, "tornadus": { "level": 81, "moves": ["acrobatics", "bulkup", "focusblast", "heatwave", "hurricane", "superpower", "taunt", "uturn"] }, "tornadustherian": { "level": 76, "moves": ["focusblast", "heatwave", "hurricane", "superpower", "uturn"] }, "thundurus": { "level": 76, "moves": ["focusblast", "hiddenpowerice", "nastyplot", "thunderbolt", "thunderwave", "voltswitch"] }, "thundurustherian": { "level": 80, "moves": ["agility", "focusblast", "grassknot", "hiddenpowerice", "nastyplot", "thunderbolt"] }, "reshiram": { "level": 76, "moves": ["blueflare", "dracometeor", "roost", "stoneedge", "tailwind"] }, "zekrom": { "level": 76, "moves": ["boltstrike", "dracometeor", "focusblast", "honeclaws", "outrage", "roost", "substitute", "voltswitch"] }, "landorus": { "level": 76, "moves": ["earthpower", "focusblast", "psychic", "rockpolish", "rockslide", "sludgewave"] }, "landorustherian": { "level": 80, "moves": ["earthquake", "rockpolish", "stealthrock", "stoneedge", "superpower", "swordsdance", "uturn"] }, "kyurem": { "level": 78, "moves": ["dracometeor", "earthpower", "focusblast", "icebeam", "outrage", "roost", "substitute"] }, "kyuremblack": { "level": 78, "moves": ["dragonclaw", "earthpower", "fusionbolt", "icebeam", "roost", "substitute"] }, "kyuremwhite": { "level": 74, "moves": ["dracometeor", "earthpower", "focusblast", "fusionflare", "icebeam", "roost", "substitute"] }, "keldeo": { "level": 79, "moves": ["calmmind", "hiddenpowergrass", "hydropump", "icywind", "scald", "secretsword", "substitute"] }, "meloetta": { "level": 82, "moves": ["calmmind", "focusblast", "psychic", "shadowball", "uturn"] }, "meloettapirouette": { "level": 82, "moves": ["closecombat", "icepunch", "relicsong", "return", "shadowclaw"] }, "genesect": { "level": 75, "moves": ["bugbuzz", "flamethrower", "icebeam", "ironhead", "rockpolish", "thunderbolt", "uturn"] } };
5596
5670
  var RandomGen5Teams = class extends RandomGen6Teams {
5597
5671
  constructor(dex, format, prng) {
5598
5672
  super(dex, format, prng);
@@ -5816,12 +5890,10 @@ var RandomGen5Teams = class extends RandomGen6Teams {
5816
5890
  switch (ability) {
5817
5891
  case "Anger Point":
5818
5892
  case "Gluttony":
5819
- case "Keen Eye":
5820
5893
  case "Moody":
5821
5894
  case "Sand Veil":
5822
5895
  case "Snow Cloak":
5823
5896
  case "Steadfast":
5824
- case "Weak Armor":
5825
5897
  return true;
5826
5898
  case "Analytic":
5827
5899
  case "Download":
@@ -5829,7 +5901,7 @@ var RandomGen5Teams = class extends RandomGen6Teams {
5829
5901
  return species.nfe;
5830
5902
  case "Chlorophyll":
5831
5903
  case "Solar Power":
5832
- return !moves.has("sunnyday") && !teamDetails.sun;
5904
+ return abilities.has("Harvest") || !moves.has("sunnyday") && !teamDetails.sun;
5833
5905
  case "Compound Eyes":
5834
5906
  case "No Guard":
5835
5907
  return !counter.get("inaccurate");
@@ -5861,7 +5933,7 @@ var RandomGen5Teams = class extends RandomGen6Teams {
5861
5933
  case "Limber":
5862
5934
  return species.types.includes("Electric");
5863
5935
  case "Mold Breaker":
5864
- return abilities.has("Adaptability") || moves.has("rest") && moves.has("sleeptalk");
5936
+ return abilities.has("Adaptability") || moves.has("rest") && moves.has("sleeptalk") || abilities.has("Sheer Force") && !!counter.get("sheerforce");
5865
5937
  case "Overgrow":
5866
5938
  return !counter.get("Grass");
5867
5939
  case "Poison Heal":
@@ -5900,6 +5972,74 @@ var RandomGen5Teams = class extends RandomGen6Teams {
5900
5972
  }
5901
5973
  return false;
5902
5974
  }
5975
+ getAbility(types, moves, abilities, counter, movePool, teamDetails, species) {
5976
+ const abilityData = Array.from(abilities).map((a) => this.dex.abilities.get(a));
5977
+ Utils.sortBy(abilityData, (abil) => -abil.rating);
5978
+ if (abilityData.length <= 1)
5979
+ return abilityData[0].name;
5980
+ if (abilities.has("Guts") && moves.has("facade") && (!abilities.has("Quick Feet") || !counter.setupType))
5981
+ return "Guts";
5982
+ if (abilities.has("Prankster") && counter.get("Status") > 1)
5983
+ return "Prankster";
5984
+ if (abilities.has("Quick Feet") && moves.has("facade"))
5985
+ return "Quick Feet";
5986
+ if (abilities.has("Swift Swim") && moves.has("raindance"))
5987
+ return "Swift Swim";
5988
+ if (species.name === "Altaria")
5989
+ return "Natural Cure";
5990
+ if (species.name === "Mandibuzz")
5991
+ return this.sample(["Big Pecks", "Overcoat"]);
5992
+ let abilityAllowed = [];
5993
+ for (const ability of abilityData) {
5994
+ if (ability.rating >= 1 && !this.shouldCullAbility(
5995
+ ability.name,
5996
+ types,
5997
+ moves,
5998
+ abilities,
5999
+ counter,
6000
+ movePool,
6001
+ teamDetails,
6002
+ species
6003
+ )) {
6004
+ abilityAllowed.push(ability);
6005
+ }
6006
+ }
6007
+ if (!abilityAllowed.length) {
6008
+ for (const ability of abilityData) {
6009
+ if (ability.rating > 0)
6010
+ abilityAllowed.push(ability);
6011
+ }
6012
+ if (!abilityAllowed.length)
6013
+ abilityAllowed = abilityData;
6014
+ }
6015
+ if (abilityAllowed.length === 1)
6016
+ return abilityAllowed[0].name;
6017
+ if (abilityAllowed[2] && abilityAllowed[0].rating - 0.5 <= abilityAllowed[2].rating) {
6018
+ if (abilityAllowed[1].rating <= abilityAllowed[2].rating) {
6019
+ if (this.randomChance(1, 2))
6020
+ [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]];
6021
+ } else {
6022
+ if (this.randomChance(1, 3))
6023
+ [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]];
6024
+ }
6025
+ if (abilityAllowed[0].rating <= abilityAllowed[1].rating) {
6026
+ if (this.randomChance(2, 3))
6027
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
6028
+ } else {
6029
+ if (this.randomChance(1, 2))
6030
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
6031
+ }
6032
+ } else {
6033
+ if (abilityAllowed[0].rating <= abilityAllowed[1].rating) {
6034
+ if (this.randomChance(1, 2))
6035
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
6036
+ } else if (abilityAllowed[0].rating - 0.5 <= abilityAllowed[1].rating) {
6037
+ if (this.randomChance(1, 3))
6038
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
6039
+ }
6040
+ }
6041
+ return abilityAllowed[0].name;
6042
+ }
5903
6043
  getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead) {
5904
6044
  if (species.requiredItem)
5905
6045
  return species.requiredItem;
@@ -6136,44 +6276,7 @@ var RandomGen5Teams = class extends RandomGen6Teams {
6136
6276
  ivs[iv] = HPivs[iv];
6137
6277
  }
6138
6278
  }
6139
- const abilityData = Array.from(abilities).map((a) => this.dex.abilities.get(a));
6140
- Utils.sortBy(abilityData, (abil) => -abil.rating);
6141
- if (abilityData.length > 1) {
6142
- if (abilityData[2] && abilityData[1].rating <= abilityData[2].rating && this.randomChance(1, 2)) {
6143
- [abilityData[1], abilityData[2]] = [abilityData[2], abilityData[1]];
6144
- }
6145
- if (abilityData[0].rating <= abilityData[1].rating) {
6146
- if (this.randomChance(1, 2))
6147
- [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]];
6148
- } else if (abilityData[0].rating - 0.6 <= abilityData[1].rating) {
6149
- if (this.randomChance(2, 3))
6150
- [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]];
6151
- }
6152
- ability = abilityData[0].name;
6153
- while (this.shouldCullAbility(ability, types, moves, abilities, counter, movePool, teamDetails, species)) {
6154
- if (ability === abilityData[0].name && abilityData[1].rating >= 1) {
6155
- ability = abilityData[1].name;
6156
- } else if (ability === abilityData[1].name && abilityData[2] && abilityData[2].rating >= 1) {
6157
- ability = abilityData[2].name;
6158
- } else {
6159
- ability = abilityData[0].name;
6160
- break;
6161
- }
6162
- }
6163
- if (abilities.has("Guts") && moves.has("facade") && (ability !== "Quick Feet" || !counter.setupType)) {
6164
- ability = "Guts";
6165
- } else if (abilities.has("Prankster") && counter.get("Status") > 1) {
6166
- ability = "Prankster";
6167
- } else if (abilities.has("Quick Feet") && moves.has("facade")) {
6168
- ability = "Quick Feet";
6169
- } else if (abilities.has("Swift Swim") && moves.has("raindance")) {
6170
- ability = "Swift Swim";
6171
- }
6172
- if (species.name === "Altaria")
6173
- ability = "Natural Cure";
6174
- } else {
6175
- ability = abilityData[0].name;
6176
- }
6279
+ ability = this.getAbility(types, moves, abilities, counter, movePool, teamDetails, species);
6177
6280
  let item = this.getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead);
6178
6281
  if (item === void 0) {
6179
6282
  item = this.getLowPriorityItem(ability, types, moves, abilities, counter, teamDetails, species, isLead);
@@ -6624,6 +6727,7 @@ var RandomGen4Teams = class extends RandomGen5Teams {
6624
6727
  switch (ability) {
6625
6728
  case "Anger Point":
6626
6729
  case "Ice Body":
6730
+ case "Rain Dish":
6627
6731
  case "Steadfast":
6628
6732
  case "Unaware":
6629
6733
  return true;
@@ -6678,6 +6782,54 @@ var RandomGen4Teams = class extends RandomGen5Teams {
6678
6782
  }
6679
6783
  return false;
6680
6784
  }
6785
+ getAbility(types, moves, abilities, counter, movePool, teamDetails, species) {
6786
+ const abilityData = Array.from(abilities).map((a) => this.dex.abilities.get(a));
6787
+ Utils.sortBy(abilityData, (abil) => -abil.rating);
6788
+ if (abilityData.length <= 1)
6789
+ return abilityData[0].name;
6790
+ if (abilities.has("Hydration") && moves.has("raindance") && moves.has("rest"))
6791
+ return "Hydration";
6792
+ if (abilities.has("Swift Swim") && moves.has("raindance"))
6793
+ return "Swift Swim";
6794
+ if (abilities.has("Technician") && moves.has("machpunch") && types.has("Fighting") && counter.get("stab") < 2) {
6795
+ return "Technician";
6796
+ }
6797
+ if (species.id === "jynx")
6798
+ return "Forewarn";
6799
+ let abilityAllowed = [];
6800
+ for (const ability of abilityData) {
6801
+ if (ability.rating >= 1 && !this.shouldCullAbility(
6802
+ ability.name,
6803
+ types,
6804
+ moves,
6805
+ abilities,
6806
+ counter,
6807
+ movePool,
6808
+ teamDetails,
6809
+ species
6810
+ )) {
6811
+ abilityAllowed.push(ability);
6812
+ }
6813
+ }
6814
+ if (!abilityAllowed.length) {
6815
+ for (const ability of abilityData) {
6816
+ if (ability.rating > 0)
6817
+ abilityAllowed.push(ability);
6818
+ }
6819
+ if (!abilityAllowed.length)
6820
+ abilityAllowed = abilityData;
6821
+ }
6822
+ if (abilityAllowed.length === 1)
6823
+ return abilityAllowed[0].name;
6824
+ if (abilityAllowed[0].rating <= abilityAllowed[1].rating) {
6825
+ if (this.randomChance(1, 2))
6826
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
6827
+ } else if (abilityAllowed[0].rating - 0.5 <= abilityAllowed[1].rating) {
6828
+ if (this.randomChance(1, 3))
6829
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
6830
+ }
6831
+ return abilityAllowed[0].name;
6832
+ }
6681
6833
  getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead) {
6682
6834
  if (species.requiredItem)
6683
6835
  return species.requiredItem;
@@ -6933,35 +7085,7 @@ var RandomGen4Teams = class extends RandomGen5Teams {
6933
7085
  ivs[iv] = HPivs[iv];
6934
7086
  }
6935
7087
  }
6936
- const abilityData = Array.from(abilities).map((a) => this.dex.abilities.get(a));
6937
- Utils.sortBy(abilityData, (abil) => -abil.rating);
6938
- let ability0 = abilityData[0];
6939
- let ability1 = abilityData[1];
6940
- if (abilityData[1]) {
6941
- if (ability0.rating <= ability1.rating && this.randomChance(1, 2)) {
6942
- [ability0, ability1] = [ability1, ability0];
6943
- } else if (ability0.rating - 0.6 <= ability1.rating && this.randomChance(2, 3)) {
6944
- [ability0, ability1] = [ability1, ability0];
6945
- }
6946
- ability = ability0.name;
6947
- while (this.shouldCullAbility(ability, types, moves, abilities, counter, movePool, teamDetails, species)) {
6948
- if (ability === ability0.name && ability1.rating >= 1) {
6949
- ability = ability1.name;
6950
- } else {
6951
- ability = abilityData[0].name;
6952
- break;
6953
- }
6954
- }
6955
- if (abilities.has("Hydration") && moves.has("raindance") && moves.has("rest")) {
6956
- ability = "Hydration";
6957
- } else if (abilities.has("Swift Swim") && moves.has("raindance")) {
6958
- ability = "Swift Swim";
6959
- } else if (abilities.has("Technician") && moves.has("machpunch") && types.has("Fighting") && counter.get("stab") < 2) {
6960
- ability = "Technician";
6961
- }
6962
- } else {
6963
- ability = ability0.name;
6964
- }
7088
+ ability = this.getAbility(types, moves, abilities, counter, movePool, teamDetails, species);
6965
7089
  item = this.getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead);
6966
7090
  if (item === void 0)
6967
7091
  item = this.getMediumPriorityItem(ability, moves, counter, species, false, isLead);
@@ -7262,25 +7386,19 @@ var RandomGen3Teams = class extends RandomGen4Teams {
7262
7386
  return !counter.get("inaccurate");
7263
7387
  case "Hustle":
7264
7388
  return counter.get("Physical") < 2;
7265
- case "Lightning Rod":
7266
- return species.types.includes("Ground");
7267
7389
  case "Overgrow":
7268
7390
  return !counter.get("Grass");
7391
+ case "Rain Dish":
7392
+ case "Swift Swim":
7393
+ return !moves.has("raindance") && !teamDetails["rain"];
7269
7394
  case "Rock Head":
7270
7395
  return !counter.get("recoil");
7271
7396
  case "Sand Veil":
7272
7397
  return !teamDetails["sand"];
7273
- case "Serene Grace":
7274
- return species.id === "blissey";
7275
7398
  case "Soundproof":
7276
- case "Sturdy":
7277
7399
  return true;
7278
- case "Swift Swim":
7279
- return !moves.has("raindance") && !teamDetails["rain"];
7280
7400
  case "Swarm":
7281
7401
  return !counter.get("Bug");
7282
- case "Thick Fat":
7283
- return abilities.has("Immunity");
7284
7402
  case "Torrent":
7285
7403
  return !counter.get("Water");
7286
7404
  case "Water Absorb":
@@ -7288,6 +7406,49 @@ var RandomGen3Teams = class extends RandomGen4Teams {
7288
7406
  }
7289
7407
  return false;
7290
7408
  }
7409
+ getAbility(types, moves, abilities, counter, movePool, teamDetails, species) {
7410
+ const abilityData = Array.from(abilities).map((a) => this.dex.abilities.get(a));
7411
+ Utils.sortBy(abilityData, (abil) => -abil.rating);
7412
+ if (abilityData.length <= 1)
7413
+ return abilityData[0].name;
7414
+ if (species.id === "snorlax")
7415
+ return "Immunity";
7416
+ if (species.id === "blissey")
7417
+ return "Natural Cure";
7418
+ let abilityAllowed = [];
7419
+ for (const ability of abilityData) {
7420
+ if (ability.rating >= 1 && !this.shouldCullAbility(
7421
+ ability.name,
7422
+ types,
7423
+ moves,
7424
+ abilities,
7425
+ counter,
7426
+ movePool,
7427
+ teamDetails,
7428
+ species
7429
+ )) {
7430
+ abilityAllowed.push(ability);
7431
+ }
7432
+ }
7433
+ if (!abilityAllowed.length) {
7434
+ for (const ability of abilityData) {
7435
+ if (ability.rating > 0)
7436
+ abilityAllowed.push(ability);
7437
+ }
7438
+ if (!abilityAllowed.length)
7439
+ abilityAllowed = abilityData;
7440
+ }
7441
+ if (abilityAllowed.length === 1)
7442
+ return abilityAllowed[0].name;
7443
+ if (abilityAllowed[0].rating <= abilityAllowed[1].rating) {
7444
+ if (this.randomChance(1, 2))
7445
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
7446
+ } else if (abilityAllowed[0].rating - 0.5 <= abilityAllowed[1].rating) {
7447
+ if (this.randomChance(1, 3))
7448
+ [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]];
7449
+ }
7450
+ return abilityAllowed[0].name;
7451
+ }
7291
7452
  randomSet(species, teamDetails = {}) {
7292
7453
  species = this.dex.species.get(species);
7293
7454
  let forme = species.name;
@@ -7412,28 +7573,7 @@ var RandomGen3Teams = class extends RandomGen4Teams {
7412
7573
  ivs[iv] = HPivs[iv];
7413
7574
  }
7414
7575
  }
7415
- const abilityData = Array.from(abilities).map((a) => this.dex.abilities.get(a)).filter((a) => a.gen === 3);
7416
- Utils.sortBy(abilityData, (abil) => -abil.rating);
7417
- let ability0 = abilityData[0];
7418
- let ability1 = abilityData[1];
7419
- if (abilityData[1]) {
7420
- if (ability0.rating <= ability1.rating && this.randomChance(1, 2)) {
7421
- [ability0, ability1] = [ability1, ability0];
7422
- } else if (ability0.rating - 0.6 <= ability1.rating && this.randomChance(2, 3)) {
7423
- [ability0, ability1] = [ability1, ability0];
7424
- }
7425
- ability = ability0.name;
7426
- while (this.shouldCullAbility(ability, types, moves, abilities, counter, movePool, teamDetails, species)) {
7427
- if (ability === ability0.name && ability1.rating > 1) {
7428
- ability = ability1.name;
7429
- } else {
7430
- ability = abilityData[0].name;
7431
- break;
7432
- }
7433
- }
7434
- } else {
7435
- ability = abilityData[0].name;
7436
- }
7576
+ ability = this.getAbility(types, moves, abilities, counter, movePool, teamDetails, species);
7437
7577
  const item = this.getItem(ability, types, moves, counter, species);
7438
7578
  const level = this.adjustLevel || data.level || (species.nfe ? 90 : 80);
7439
7579
  let hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10);
@@ -9656,8 +9796,14 @@ var RandomTeams = class {
9656
9796
  abilityAllowed.push(ability);
9657
9797
  }
9658
9798
  }
9659
- if (!abilityAllowed.length)
9660
- abilityAllowed = abilityData;
9799
+ if (!abilityAllowed.length) {
9800
+ for (const ability of abilityData) {
9801
+ if (ability.rating > 0)
9802
+ abilityAllowed.push(ability);
9803
+ }
9804
+ if (!abilityAllowed.length)
9805
+ abilityAllowed = abilityData;
9806
+ }
9661
9807
  if (abilityAllowed.length === 1)
9662
9808
  return abilityAllowed[0].name;
9663
9809
  if (abilityAllowed[2] && abilityAllowed[0].rating - 0.5 <= abilityAllowed[2].rating) {