@pkmn/sim 0.5.5 → 0.5.8

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.
Files changed (71) hide show
  1. package/build/config/formats.js +325 -254
  2. package/build/config/formats.js.map +1 -1
  3. package/build/data/aliases.js +4 -4
  4. package/build/data/aliases.js.map +1 -1
  5. package/build/data/formats-data.js +130 -17
  6. package/build/data/formats-data.js.map +1 -1
  7. package/build/data/items.js +2 -2
  8. package/build/data/items.js.map +1 -1
  9. package/build/data/learnsets.js +6 -5
  10. package/build/data/learnsets.js.map +1 -1
  11. package/build/data/mods/gen2/moves.js +13 -1
  12. package/build/data/mods/gen2/moves.js.map +1 -1
  13. package/build/data/mods/gen3/formats-data.js +3 -3
  14. package/build/data/mods/gen3/formats-data.js.map +1 -1
  15. package/build/data/mods/gen4/formats-data.js +4 -4
  16. package/build/data/mods/gen4/formats-data.js.map +1 -1
  17. package/build/data/mods/gen4/moves.js +7 -5
  18. package/build/data/mods/gen4/moves.js.map +1 -1
  19. package/build/data/mods/gen5/formats-data.js +1 -1
  20. package/build/data/mods/gen5/formats-data.js.map +1 -1
  21. package/build/data/mods/gen5/moves.js +6 -4
  22. package/build/data/mods/gen5/moves.js.map +1 -1
  23. package/build/data/mods/gen6/formats-data.js +3 -2
  24. package/build/data/mods/gen6/formats-data.js.map +1 -1
  25. package/build/data/mods/gen6/items.js +2 -2
  26. package/build/data/mods/gen6/items.js.map +1 -1
  27. package/build/data/mods/gen7/formats-data.js +2 -1
  28. package/build/data/mods/gen7/formats-data.js.map +1 -1
  29. package/build/data/mods/gen7/moves.js +3 -3
  30. package/build/data/mods/gen7/moves.js.map +1 -1
  31. package/build/data/mods/gen7/pokedex.js +4 -0
  32. package/build/data/mods/gen7/pokedex.js.map +1 -1
  33. package/build/data/moves.js +6 -5
  34. package/build/data/moves.js.map +1 -1
  35. package/build/data/pokedex.js +480 -11
  36. package/build/data/pokedex.js.map +1 -1
  37. package/build/data/rulesets.js +26 -1
  38. package/build/data/rulesets.js.map +1 -1
  39. package/build/sim/battle.js +23 -22
  40. package/build/sim/battle.js.map +1 -1
  41. package/build/sim/dex-species.js +5 -2
  42. package/build/sim/dex-species.js.map +1 -1
  43. package/build/sim/exported-global-types.d.ts +1 -0
  44. package/build/sim/global-types.d.ts +1 -0
  45. package/build/sim/team-validator.js +11 -0
  46. package/build/sim/team-validator.js.map +1 -1
  47. package/config/formats.ts +327 -257
  48. package/data/aliases.ts +4 -4
  49. package/data/formats-data.ts +130 -17
  50. package/data/items.ts +2 -2
  51. package/data/learnsets.ts +6 -5
  52. package/data/mods/gen2/moves.ts +13 -1
  53. package/data/mods/gen3/formats-data.ts +3 -3
  54. package/data/mods/gen4/formats-data.ts +4 -4
  55. package/data/mods/gen4/moves.ts +6 -4
  56. package/data/mods/gen5/formats-data.ts +1 -1
  57. package/data/mods/gen5/moves.ts +6 -4
  58. package/data/mods/gen6/formats-data.ts +3 -2
  59. package/data/mods/gen6/items.ts +2 -2
  60. package/data/mods/gen7/formats-data.ts +2 -1
  61. package/data/mods/gen7/moves.ts +3 -3
  62. package/data/mods/gen7/pokedex.ts +4 -0
  63. package/data/moves.ts +6 -5
  64. package/data/pokedex.ts +480 -11
  65. package/data/rulesets.ts +23 -1
  66. package/package.json +2 -2
  67. package/sim/battle.ts +24 -23
  68. package/sim/dex-species.ts +5 -2
  69. package/sim/exported-global-types.ts +1 -0
  70. package/sim/global-types.ts +1 -0
  71. package/sim/team-validator.ts +13 -0
package/data/aliases.ts CHANGED
@@ -14,8 +14,8 @@ export const Aliases: {[alias: string]: string} = {
14
14
  mono: "[Gen 8] Monotype",
15
15
  ag: "[Gen 8] Anything Goes",
16
16
  bss: "[Gen 8] Battle Stadium Singles",
17
- vgc: "[Gen 8] VGC 2021 Series 11",
18
- bsd: "[Gen 8] VGC 2021 Series 11",
17
+ vgc: "[Gen 8] VGC 2022",
18
+ bsd: "[Gen 8] VGC 2022",
19
19
  randdubs: "[Gen 8] Random Doubles Battle",
20
20
  doubles: "[Gen 8] Doubles OU",
21
21
  dou: "[Gen 8] Doubles OU",
@@ -67,8 +67,8 @@ export const Aliases: {[alias: string]: string} = {
67
67
  gen6mono: "[Gen 6] Monotype",
68
68
  gen6ag: "[Gen 6] Anything Goes",
69
69
  crossevo: "[Gen 8] Cross Evolution",
70
- omotm: "[Gen 8] Pokebilities",
71
- lcotm: "[Gen 8] Camomons",
70
+ omotm: "[Gen 8] Trademarked",
71
+ lcotm: "[Gen 8] Linked",
72
72
 
73
73
  // mega evos
74
74
  fabio: "Ampharos-Mega",
@@ -270,7 +270,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
270
270
  tier: "LC",
271
271
  },
272
272
  sandshrewalola: {
273
- tier: "LC",
273
+ tier: "NUBL",
274
+ doublesTier: "LC",
274
275
  },
275
276
  sandslash: {
276
277
  randomBattleMoves: ["earthquake", "knockoff", "rapidspin", "spikes", "stealthrock", "stoneedge", "swordsdance", "toxic"],
@@ -285,7 +286,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
285
286
  randomBattleLevel: 86,
286
287
  randomDoubleBattleMoves: ["drillrun", "ironhead", "protect", "swordsdance", "tripleaxel"],
287
288
  randomDoubleBattleLevel: 90,
288
- tier: "(PU)",
289
+ tier: "NUBL",
289
290
  doublesTier: "(DUU)",
290
291
  },
291
292
  nidoranf: {
@@ -503,6 +504,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
503
504
  growlithe: {
504
505
  tier: "LC",
505
506
  },
507
+ growlithehisui: {
508
+ isNonstandard: "Future",
509
+ tier: "Illegal",
510
+ },
506
511
  arcanine: {
507
512
  randomBattleMoves: ["closecombat", "extremespeed", "flareblitz", "morningsun", "toxic", "wildcharge", "willowisp"],
508
513
  randomBattleLevel: 82,
@@ -511,6 +516,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
511
516
  tier: "NU",
512
517
  doublesTier: "DUU",
513
518
  },
519
+ arcaninehisui: {
520
+ isNonstandard: "Future",
521
+ tier: "Illegal",
522
+ },
514
523
  poliwag: {
515
524
  tier: "LC",
516
525
  },
@@ -830,10 +839,18 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
830
839
  isNonstandard: "Past",
831
840
  tier: "Illegal",
832
841
  },
842
+ voltorbhisui: {
843
+ isNonstandard: "Future",
844
+ tier: "Illegal",
845
+ },
833
846
  electrode: {
834
847
  isNonstandard: "Past",
835
848
  tier: "Illegal",
836
849
  },
850
+ electrodehisui: {
851
+ isNonstandard: "Future",
852
+ tier: "Illegal",
853
+ },
837
854
  exeggcute: {
838
855
  tier: "LC",
839
856
  },
@@ -962,7 +979,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
962
979
  randomBattleMoves: ["seismictoss", "softboiled", "stealthrock", "teleport", "toxic"],
963
980
  randomBattleLevel: 83,
964
981
  randomDoubleBattleMoves: ["allyswitch", "protect", "seismictoss", "softboiled", "thunderwave", "toxic"],
965
- randomDoubleBattleLevel: 87,
982
+ randomDoubleBattleLevel: 88,
966
983
  tier: "OU",
967
984
  doublesTier: "(DUU)",
968
985
  },
@@ -1431,6 +1448,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
1431
1448
  isNonstandard: "Past",
1432
1449
  tier: "Illegal",
1433
1450
  },
1451
+ typhlosionhisui: {
1452
+ isNonstandard: "Future",
1453
+ tier: "Illegal",
1454
+ },
1434
1455
  totodile: {
1435
1456
  isNonstandard: "Past",
1436
1457
  tier: "Illegal",
@@ -1679,6 +1700,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
1679
1700
  tier: "(PU)",
1680
1701
  doublesTier: "(DUU)",
1681
1702
  },
1703
+ qwilfishhisui: {
1704
+ isNonstandard: "Future",
1705
+ tier: "Illegal",
1706
+ },
1682
1707
  shuckle: {
1683
1708
  randomBattleMoves: ["encore", "knockoff", "stealthrock", "stickyweb", "toxic"],
1684
1709
  randomBattleLevel: 86,
@@ -1702,6 +1727,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
1702
1727
  sneasel: {
1703
1728
  tier: "NFE",
1704
1729
  },
1730
+ sneaselhisui: {
1731
+ isNonstandard: "Future",
1732
+ tier: "Illegal",
1733
+ },
1705
1734
  weavile: {
1706
1735
  randomBattleMoves: ["iceshard", "knockoff", "lowkick", "swordsdance", "tripleaxel"],
1707
1736
  randomBattleLevel: 79,
@@ -2606,7 +2635,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
2606
2635
  randomBattleMoves: ["dragondance", "dualwingbeat", "earthquake", "outrage", "roost"],
2607
2636
  randomBattleLevel: 76,
2608
2637
  randomDoubleBattleMoves: ["dragonclaw", "fireblast", "hurricane", "protect", "tailwind"],
2609
- randomDoubleBattleLevel: 80,
2638
+ randomDoubleBattleLevel: 79,
2610
2639
  tier: "UU",
2611
2640
  doublesTier: "(DUU)",
2612
2641
  },
@@ -2624,7 +2653,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
2624
2653
  randomBattleMoves: ["agility", "bulletpunch", "earthquake", "explosion", "meteormash", "stealthrock", "thunderpunch"],
2625
2654
  randomBattleLevel: 79,
2626
2655
  randomDoubleBattleMoves: ["agility", "bulletpunch", "icepunch", "meteormash", "stompingtantrum", "trick", "zenheadbutt"],
2627
- randomDoubleBattleLevel: 83,
2656
+ randomDoubleBattleLevel: 82,
2628
2657
  tier: "RU",
2629
2658
  doublesTier: "DOU",
2630
2659
  },
@@ -3146,6 +3175,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
3146
3175
  tier: "Uber",
3147
3176
  doublesTier: "DUber",
3148
3177
  },
3178
+ dialgaorigin: {
3179
+ isNonstandard: "Future",
3180
+ tier: "Illegal",
3181
+ },
3149
3182
  palkia: {
3150
3183
  randomBattleMoves: ["dracometeor", "fireblast", "hydropump", "spacialrend", "thunderwave"],
3151
3184
  randomBattleLevel: 74,
@@ -3154,6 +3187,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
3154
3187
  tier: "Uber",
3155
3188
  doublesTier: "DUber",
3156
3189
  },
3190
+ palkiaorigin: {
3191
+ isNonstandard: "Future",
3192
+ tier: "Illegal",
3193
+ },
3157
3194
  heatran: {
3158
3195
  randomBattleMoves: ["earthpower", "flashcannon", "lavaplume", "protect", "stealthrock", "taunt", "toxic"],
3159
3196
  randomBattleLevel: 78,
@@ -3314,6 +3351,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
3314
3351
  isNonstandard: "Past",
3315
3352
  tier: "Illegal",
3316
3353
  },
3354
+ samurotthisui: {
3355
+ isNonstandard: "Future",
3356
+ tier: "Illegal",
3357
+ },
3317
3358
  patrat: {
3318
3359
  isNonstandard: "Past",
3319
3360
  tier: "Illegal",
@@ -3442,7 +3483,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
3442
3483
  },
3443
3484
  audino: {
3444
3485
  randomBattleMoves: ["healbell", "knockoff", "protect", "toxic", "wish"],
3445
- randomBattleLevel: 90,
3486
+ randomBattleLevel: 91,
3446
3487
  randomDoubleBattleMoves: ["bodyslam", "healpulse", "helpinghand", "knockoff", "protect", "thunderwave"],
3447
3488
  randomDoubleBattleLevel: 90,
3448
3489
  tier: "PU",
@@ -3547,6 +3588,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
3547
3588
  tier: "(PU)",
3548
3589
  doublesTier: "(DUU)",
3549
3590
  },
3591
+ lilliganthisui: {
3592
+ isNonstandard: "Future",
3593
+ tier: "Illegal",
3594
+ },
3550
3595
  basculin: {
3551
3596
  randomBattleMoves: ["aquajet", "crunch", "flipturn", "headsmash", "liquidation", "psychicfangs"],
3552
3597
  randomBattleLevel: 86,
@@ -3563,6 +3608,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
3563
3608
  tier: "(PU)",
3564
3609
  doublesTier: "(DUU)",
3565
3610
  },
3611
+ basculinwhitestriped: {
3612
+ isNonstandard: "Future",
3613
+ tier: "Illegal",
3614
+ },
3566
3615
  sandile: {
3567
3616
  tier: "LC",
3568
3617
  },
@@ -3704,12 +3753,20 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
3704
3753
  zorua: {
3705
3754
  tier: "LC",
3706
3755
  },
3756
+ zoruahisui: {
3757
+ isNonstandard: "Future",
3758
+ tier: "Illegal",
3759
+ },
3707
3760
  zoroark: {
3708
3761
  randomBattleMoves: ["darkpulse", "flamethrower", "nastyplot", "sludgebomb", "trick"],
3709
3762
  randomDoubleBattleMoves: ["darkpulse", "flamethrower", "focusblast", "nastyplot", "protect", "sludgebomb"],
3710
3763
  tier: "NU",
3711
3764
  doublesTier: "(DUU)",
3712
3765
  },
3766
+ zoroarkhisui: {
3767
+ isNonstandard: "Future",
3768
+ tier: "Illegal",
3769
+ },
3713
3770
  minccino: {
3714
3771
  tier: "LC",
3715
3772
  },
@@ -3963,7 +4020,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
3963
4020
  tier: "LC",
3964
4021
  },
3965
4022
  mienshao: {
3966
- randomBattleMoves: ["closecombat", "fakeout", "knockoff", "poisonjab", "swordsdance", "uturn"],
4023
+ randomBattleMoves: ["closecombat", "fakeout", "knockoff", "poisonjab", "stoneedge", "swordsdance", "uturn"],
3967
4024
  randomBattleLevel: 82,
3968
4025
  randomDoubleBattleMoves: ["closecombat", "fakeout", "knockoff", "poisonjab", "protect", "uturn"],
3969
4026
  randomDoubleBattleLevel: 84,
@@ -4019,6 +4076,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
4019
4076
  tier: "NU",
4020
4077
  doublesTier: "(DUU)",
4021
4078
  },
4079
+ braviaryhisui: {
4080
+ isNonstandard: "Future",
4081
+ tier: "Illegal",
4082
+ },
4022
4083
  vullaby: {
4023
4084
  tier: "NFE",
4024
4085
  },
@@ -4167,7 +4228,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
4167
4228
  randomDoubleBattleMoves: ["dracometeor", "earthpower", "freezedry", "glaciate", "protect", "roost"],
4168
4229
  randomDoubleBattleLevel: 78,
4169
4230
  tier: "Uber",
4170
- doublesTier: "DUU",
4231
+ doublesTier: "(DUU)",
4171
4232
  },
4172
4233
  kyuremblack: {
4173
4234
  randomBattleMoves: ["dragondance", "fusionbolt", "iciclespear", "outrage"],
@@ -4529,14 +4590,22 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
4529
4590
  sliggoo: {
4530
4591
  tier: "NFE",
4531
4592
  },
4593
+ sliggoohisui: {
4594
+ isNonstandard: "Future",
4595
+ tier: "Illegal",
4596
+ },
4532
4597
  goodra: {
4533
4598
  randomBattleMoves: ["dracometeor", "earthquake", "fireblast", "powerwhip", "sludgebomb", "thunderbolt"],
4534
4599
  randomBattleLevel: 82,
4535
4600
  randomDoubleBattleMoves: ["breakingswipe", "dracometeor", "fireblast", "muddywater", "powerwhip", "protect", "sludgebomb", "thunderbolt"],
4536
4601
  randomDoubleBattleLevel: 85,
4537
- tier: "NU",
4602
+ tier: "NUBL",
4538
4603
  doublesTier: "(DUU)",
4539
4604
  },
4605
+ goodrahisui: {
4606
+ isNonstandard: "Future",
4607
+ tier: "Illegal",
4608
+ },
4540
4609
  klefki: {
4541
4610
  randomBattleMoves: ["magnetrise", "playrough", "spikes", "thunderwave", "toxic"],
4542
4611
  randomBattleLevel: 82,
@@ -4611,6 +4680,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
4611
4680
  tier: "(PU)",
4612
4681
  doublesTier: "(DUU)",
4613
4682
  },
4683
+ avalugghisui: {
4684
+ isNonstandard: "Future",
4685
+ tier: "Illegal",
4686
+ },
4614
4687
  noibat: {
4615
4688
  tier: "LC",
4616
4689
  },
@@ -4705,6 +4778,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
4705
4778
  tier: "NU",
4706
4779
  doublesTier: "(DUU)",
4707
4780
  },
4781
+ decidueyehisui: {
4782
+ isNonstandard: "Future",
4783
+ tier: "Illegal",
4784
+ },
4708
4785
  litten: {
4709
4786
  tier: "LC",
4710
4787
  },
@@ -5266,7 +5343,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
5266
5343
  randomBattleMoves: ["closecombat", "hornleech", "megahorn", "stoneedge", "swordsdance", "woodhammer"],
5267
5344
  randomBattleLevel: 82,
5268
5345
  randomDoubleBattleMoves: ["closecombat", "highhorsepower", "hornleech", "protect", "stoneedge", "swordsdance", "woodhammer"],
5269
- randomDoubleBattleLevel: 81,
5346
+ randomDoubleBattleLevel: 83,
5270
5347
  tier: "UU",
5271
5348
  doublesTier: "DUU",
5272
5349
  },
@@ -5302,7 +5379,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
5302
5379
  },
5303
5380
  nihilego: {
5304
5381
  randomBattleMoves: ["grassknot", "powergem", "sludgewave", "stealthrock", "thunderbolt", "toxicspikes"],
5305
- randomBattleLevel: 80,
5382
+ randomBattleLevel: 79,
5306
5383
  randomDoubleBattleMoves: ["grassknot", "meteorbeam", "protect", "sludgebomb", "thunderbolt"],
5307
5384
  randomDoubleBattleLevel: 81,
5308
5385
  tier: "UU",
@@ -5363,7 +5440,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
5363
5440
  randomBattleLevel: 80,
5364
5441
  randomDoubleBattleMoves: ["calmmind", "earthpower", "heatwave", "moonlight", "photongeyser", "protect"],
5365
5442
  randomDoubleBattleLevel: 80,
5366
- tier: "RU",
5443
+ tier: "RUBL",
5367
5444
  doublesTier: "DOU",
5368
5445
  },
5369
5446
  necrozmaduskmane: {
@@ -5584,7 +5661,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
5584
5661
  randomBattleMoves: ["darkpulse", "foulplay", "grassknot", "nastyplot", "partingshot", "psychic"],
5585
5662
  randomBattleLevel: 86,
5586
5663
  randomDoubleBattleMoves: ["faketears", "foulplay", "partingshot", "snarl", "taunt"],
5587
- randomDoubleBattleLevel: 88,
5664
+ randomDoubleBattleLevel: 89,
5588
5665
  tier: "(PU)",
5589
5666
  doublesTier: "(DUU)",
5590
5667
  },
@@ -5893,7 +5970,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
5893
5970
  },
5894
5971
  indeedee: {
5895
5972
  randomBattleMoves: ["calmmind", "expandingforce", "hypervoice", "mysticalfire", "trick"],
5896
- randomBattleLevel: 82,
5973
+ randomBattleLevel: 83,
5897
5974
  randomDoubleBattleMoves: ["encore", "expandingforce", "hypervoice", "mysticalfire", "protect", "trick"],
5898
5975
  randomDoubleBattleLevel: 80,
5899
5976
  tier: "NUBL",
@@ -5901,7 +5978,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
5901
5978
  },
5902
5979
  indeedeef: {
5903
5980
  randomBattleMoves: ["calmmind", "expandingforce", "healingwish", "hypervoice", "mysticalfire"],
5904
- randomBattleLevel: 84,
5981
+ randomBattleLevel: 85,
5905
5982
  randomDoubleBattleMoves: ["expandingforce", "followme", "healpulse", "helpinghand", "protect"],
5906
5983
  randomDoubleBattleLevel: 80,
5907
5984
  tier: "NU",
@@ -5948,7 +6025,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
5948
6025
  randomDoubleBattleMoves: ["blizzard", "boltbeak", "iciclecrash", "lowkick", "protect"],
5949
6026
  randomDoubleBattleLevel: 88,
5950
6027
  tier: "UUBL",
5951
- doublesTier: "DUU",
6028
+ doublesTier: "(DUU)",
5952
6029
  },
5953
6030
  dracovish: {
5954
6031
  randomBattleMoves: ["crunch", "fishiousrend", "icefang", "lowkick", "psychicfangs"],
@@ -5963,7 +6040,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
5963
6040
  randomBattleLevel: 86,
5964
6041
  randomDoubleBattleMoves: ["blizzard", "fishiousrend", "iciclecrash", "protect", "superfang"],
5965
6042
  randomDoubleBattleLevel: 88,
5966
- tier: "NUBL",
6043
+ tier: "(PU)",
5967
6044
  doublesTier: "(DUU)",
5968
6045
  },
5969
6046
  duraludon: {
@@ -6141,6 +6218,42 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = {
6141
6218
  tier: "Uber",
6142
6219
  doublesTier: "DUber",
6143
6220
  },
6221
+ wyrdeer: {
6222
+ isNonstandard: "Future",
6223
+ tier: "Illegal",
6224
+ },
6225
+ kleavor: {
6226
+ isNonstandard: "Future",
6227
+ tier: "Illegal",
6228
+ },
6229
+ ursaluna: {
6230
+ isNonstandard: "Future",
6231
+ tier: "Illegal",
6232
+ },
6233
+ basculegion: {
6234
+ isNonstandard: "Future",
6235
+ tier: "Illegal",
6236
+ },
6237
+ basculegionf: {
6238
+ isNonstandard: "Future",
6239
+ tier: "Illegal",
6240
+ },
6241
+ sneasler: {
6242
+ isNonstandard: "Future",
6243
+ tier: "Illegal",
6244
+ },
6245
+ overqwil: {
6246
+ isNonstandard: "Future",
6247
+ tier: "Illegal",
6248
+ },
6249
+ enamorus: {
6250
+ isNonstandard: "Future",
6251
+ tier: "Illegal",
6252
+ },
6253
+ enamorustherian: {
6254
+ isNonstandard: "Future",
6255
+ tier: "Illegal",
6256
+ },
6144
6257
  missingno: {
6145
6258
  isNonstandard: "Custom",
6146
6259
  tier: "Illegal",
package/data/items.ts CHANGED
@@ -2585,7 +2585,7 @@ export const Items: {[itemid: string]: ItemData} = {
2585
2585
  type: "Dragon",
2586
2586
  },
2587
2587
  onDamagingHit(damage, target, source, move) {
2588
- if (move.category === 'Physical' && source.hp && source.isActive) {
2588
+ if (move.category === 'Physical' && source.hp && source.isActive && !source.hasAbility('magicguard')) {
2589
2589
  if (target.eatItem()) {
2590
2590
  this.damage(source.baseMaxhp / (target.hasAbility('ripen') ? 4 : 8), source, target);
2591
2591
  }
@@ -4643,7 +4643,7 @@ export const Items: {[itemid: string]: ItemData} = {
4643
4643
  type: "Dark",
4644
4644
  },
4645
4645
  onDamagingHit(damage, target, source, move) {
4646
- if (move.category === 'Special' && source.hp && source.isActive) {
4646
+ if (move.category === 'Special' && source.hp && source.isActive && !source.hasAbility('magicguard')) {
4647
4647
  if (target.eatItem()) {
4648
4648
  this.damage(source.baseMaxhp / (target.hasAbility('ripen') ? 4 : 8), source, target);
4649
4649
  }
package/data/learnsets.ts CHANGED
@@ -20168,12 +20168,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = {
20168
20168
  expandingforce: ["8T"],
20169
20169
  facade: ["8M"],
20170
20170
  fly: ["8M"],
20171
- freezingglare: ["8L45", "8S0"],
20171
+ freezingglare: ["8L45", "8S0", "8S1"],
20172
20172
  futuresight: ["8M", "8L65"],
20173
20173
  gigaimpact: ["8M"],
20174
20174
  guardswap: ["8M"],
20175
20175
  gust: ["8L1"],
20176
- hurricane: ["8M", "8L55", "8S0"],
20176
+ hurricane: ["8M", "8L55", "8S0", "8S1"],
20177
20177
  hyperbeam: ["8M"],
20178
20178
  hypervoice: ["8M"],
20179
20179
  hypnosis: ["8L15"],
@@ -20183,8 +20183,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = {
20183
20183
  powerswap: ["8M"],
20184
20184
  protect: ["8M"],
20185
20185
  psychic: ["8M"],
20186
- psychocut: ["8M", "8L35", "8S0"],
20187
- psychoshift: ["8L1", "8S0"],
20186
+ psychocut: ["8M", "8L35", "8S0", "8S1"],
20187
+ psychoshift: ["8L1", "8S0", "8S1"],
20188
20188
  psyshock: ["8M"],
20189
20189
  recover: ["8L40"],
20190
20190
  reflect: ["8M", "8L10"],
@@ -20205,6 +20205,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = {
20205
20205
  },
20206
20206
  eventData: [
20207
20207
  {generation: 8, level: 70, moves: ["freezingglare", "hurricane", "psychocut", "psychoshift"]},
20208
+ {generation: 8, level: 70, shiny: true, moves: ["freezingglare", "hurricane", "psychocut", "psychoshift"], pokeball: "cherishball"},
20208
20209
  ],
20209
20210
  eventOnly: true,
20210
20211
  },
@@ -79487,7 +79488,6 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = {
79487
79488
  ironhead: ["8M", "7T"],
79488
79489
  irontail: ["8M", "7T", "4M"],
79489
79490
  lavaplume: ["8L48", "7L50", "4L54"],
79490
- leafstorm: ["8M"],
79491
79491
  leechseed: ["8L1", "7L10", "4L13"],
79492
79492
  lightscreen: ["8M", "7M", "4M"],
79493
79493
  lowkick: ["8M", "7T", "4T"],
@@ -79514,6 +79514,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = {
79514
79514
  scorchingsands: ["8T"],
79515
79515
  secretpower: ["7M", "4M"],
79516
79516
  seedbomb: ["8M", "8L32", "7L23", "4T"],
79517
+ slackoff: ["8L1"],
79517
79518
  sleeptalk: ["8M", "7M", "4M"],
79518
79519
  snore: ["8M", "4T"],
79519
79520
  solarbeam: ["8M", "7M", "4M"],
@@ -307,11 +307,17 @@ export const Moves: {[k: string]: ModdedMoveData} = {
307
307
  },
308
308
  },
309
309
  },
310
+ frustration: {
311
+ inherit: true,
312
+ basePowerCallback(pokemon) {
313
+ return Math.floor(((255 - pokemon.happiness) * 10) / 25) || null;
314
+ },
315
+ },
310
316
  healbell: {
311
317
  inherit: true,
312
318
  onHit(target, source) {
313
319
  this.add('-cureteam', source, '[from] move: Heal Bell');
314
- for (const pokemon of source.side.pokemon) {
320
+ for (const pokemon of target.side.pokemon) {
315
321
  pokemon.clearStatus();
316
322
  }
317
323
  },
@@ -674,6 +680,12 @@ export const Moves: {[k: string]: ModdedMoveData} = {
674
680
  },
675
681
  secondary: null,
676
682
  },
683
+ return: {
684
+ inherit: true,
685
+ basePowerCallback(pokemon) {
686
+ return Math.floor((pokemon.happiness * 10) / 25) || null;
687
+ },
688
+ },
677
689
  reversal: {
678
690
  inherit: true,
679
691
  noDamageVariance: true,
@@ -17,7 +17,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
17
17
  },
18
18
  charizard: {
19
19
  randomBattleMoves: ["bellydrum", "dragondance", "earthquake", "fireblast", "hiddenpowerflying", "substitute"],
20
- tier: "UUBL",
20
+ tier: "OU",
21
21
  },
22
22
  squirtle: {
23
23
  tier: "LC",
@@ -544,7 +544,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
544
544
  },
545
545
  porygon2: {
546
546
  randomBattleMoves: ["icebeam", "recover", "return", "thunderbolt", "thunderwave", "toxic"],
547
- tier: "OU",
547
+ tier: "UUBL",
548
548
  },
549
549
  omanyte: {
550
550
  tier: "LC",
@@ -1352,7 +1352,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
1352
1352
  tier: "UUBL",
1353
1353
  },
1354
1354
  registeel: {
1355
- randomBattleMoves: ["protect", "rest", "seismictoss", "sleeptalk", "toxic"],
1355
+ randomBattleMoves: ["rest", "seismictoss", "sleeptalk", "toxic"],
1356
1356
  tier: "UUBL",
1357
1357
  },
1358
1358
  latias: {
@@ -164,7 +164,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
164
164
  tier: "NFE",
165
165
  },
166
166
  vileplume: {
167
- randomBattleMoves: ["energyball", "moonlight", "sleeppowder", "sludgebomb", "solarbeam", "sunnyday"],
167
+ randomBattleMoves: ["energyball", "hiddenpowerfire", "moonlight", "sleeppowder", "sludgebomb", "solarbeam", "sunnyday"],
168
168
  tier: "NU",
169
169
  },
170
170
  bellossom: {
@@ -474,7 +474,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
474
474
  tier: "LC",
475
475
  },
476
476
  starmie: {
477
- randomBattleMoves: ["hydropump", "icebeam", "rapidspin", "recover", "surf", "thunderbolt"],
477
+ randomBattleMoves: ["hydropump", "icebeam", "psychic", "rapidspin", "recover", "surf", "thunderbolt"],
478
478
  tier: "OU",
479
479
  },
480
480
  mimejr: {
@@ -987,7 +987,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
987
987
  tier: "NFE",
988
988
  },
989
989
  blaziken: {
990
- randomBattleMoves: ["agility", "fireblast", "flareblitz", "hiddenpowerice", "lowkick", "stoneedge", "superpower", "thunderpunch", "vacuumwave"],
990
+ randomBattleMoves: ["agility", "fireblast", "flareblitz", "stoneedge", "superpower", "thunderpunch", "vacuumwave"],
991
991
  tier: "UU",
992
992
  },
993
993
  mudkip: {
@@ -1666,7 +1666,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
1666
1666
  tier: "NU",
1667
1667
  },
1668
1668
  garchomp: {
1669
- randomBattleMoves: ["dragonclaw", "earthquake", "firefang", "outrage", "stealthrock", "stoneedge", "substitute", "swordsdance"],
1669
+ randomBattleMoves: ["dragonclaw", "earthquake", "fireblast", "outrage", "stealthrock", "stoneedge", "substitute", "swordsdance"],
1670
1670
  tier: "Uber",
1671
1671
  },
1672
1672
  riolu: {
@@ -27,8 +27,9 @@ export const Moves: {[k: string]: ModdedMoveData} = {
27
27
  inherit: true,
28
28
  onHit(target, source) {
29
29
  this.add('-cureteam', source, '[from] move: Aromatherapy');
30
- for (const pokemon of source.side.pokemon) {
31
- pokemon.clearStatus();
30
+ const allies = [...target.side.pokemon, ...target.side.allySide?.pokemon || []];
31
+ for (const ally of allies) {
32
+ ally.clearStatus();
32
33
  }
33
34
  },
34
35
  },
@@ -698,8 +699,9 @@ export const Moves: {[k: string]: ModdedMoveData} = {
698
699
  inherit: true,
699
700
  onHit(target, source) {
700
701
  this.add('-activate', source, 'move: Heal Bell');
701
- for (const pokemon of source.side.pokemon) {
702
- if (!pokemon.hasAbility('soundproof')) pokemon.cureStatus(true);
702
+ const allies = [...target.side.pokemon, ...target.side.allySide?.pokemon || []];
703
+ for (const ally of allies) {
704
+ if (!ally.hasAbility('soundproof')) ally.cureStatus(true);
703
705
  }
704
706
  },
705
707
  },
@@ -658,7 +658,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
658
658
  doublesTier: "DUU",
659
659
  },
660
660
  glaceon: {
661
- randomBattleMoves: ["hiddenpowerground", "icebeam", "protect", "shadowball", "wish"],
661
+ randomBattleMoves: ["hiddenpowerground", "icebeam", "protect", "shadowball", "toxic", "wish"],
662
662
  tier: "(PU)",
663
663
  doublesTier: "DUU",
664
664
  },
@@ -19,8 +19,9 @@ export const Moves: {[k: string]: ModdedMoveData} = {
19
19
  inherit: true,
20
20
  onHit(target, source) {
21
21
  this.add('-activate', source, 'move: Aromatherapy');
22
- for (const pokemon of source.side.pokemon) {
23
- pokemon.cureStatus();
22
+ const allies = [...target.side.pokemon, ...target.side.allySide?.pokemon || []];
23
+ for (const ally of allies) {
24
+ ally.cureStatus();
24
25
  }
25
26
  },
26
27
  },
@@ -352,8 +353,9 @@ export const Moves: {[k: string]: ModdedMoveData} = {
352
353
  flags: {snatch: 1, sound: 1},
353
354
  onHit(target, source) {
354
355
  this.add('-activate', source, 'move: Heal Bell');
355
- for (const pokemon of source.side.pokemon) {
356
- pokemon.cureStatus();
356
+ const allies = [...target.side.pokemon, ...target.side.allySide?.pokemon || []];
357
+ for (const ally of allies) {
358
+ ally.cureStatus();
357
359
  }
358
360
  },
359
361
  },
@@ -623,11 +623,12 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
623
623
  tier: "LC",
624
624
  },
625
625
  rhydon: {
626
+ randomBattleMoves: ["earthquake", "megahorn", "rockblast", "stealthrock", "stoneedge", "toxic"],
626
627
  tier: "NU",
627
628
  doublesTier: "NFE",
628
629
  },
629
630
  rhyperior: {
630
- randomBattleMoves: ["dragontail", "earthquake", "icepunch", "megahorn", "rockblast", "rockpolish", "stealthrock", "stoneedge"],
631
+ randomBattleMoves: ["dragontail", "earthquake", "icepunch", "megahorn", "rockblast", "rockpolish", "stoneedge"],
631
632
  randomDoubleBattleMoves: ["earthquake", "hammerarm", "megahorn", "protect", "rockslide", "stealthrock", "stoneedge"],
632
633
  tier: "RU",
633
634
  doublesTier: "DUU",
@@ -3860,7 +3861,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
3860
3861
  avalugg: {
3861
3862
  randomBattleMoves: ["avalanche", "earthquake", "rapidspin", "recover", "roar", "toxic"],
3862
3863
  randomDoubleBattleMoves: ["avalanche", "earthquake", "protect", "recover"],
3863
- tier: "(PU)",
3864
+ tier: "PU",
3864
3865
  doublesTier: "(DUU)",
3865
3866
  },
3866
3867
  noibat: {
@@ -56,7 +56,7 @@ export const Items: {[k: string]: ModdedItemData} = {
56
56
  jabocaberry: {
57
57
  inherit: true,
58
58
  onDamagingHit(damage, target, source, move) {
59
- if (move.category === 'Physical') {
59
+ if (move.category === 'Physical' && !source.hasAbility('magicguard')) {
60
60
  if (target.eatItem()) {
61
61
  this.damage(source.baseMaxhp / 8, source, target, null, true);
62
62
  }
@@ -128,7 +128,7 @@ export const Items: {[k: string]: ModdedItemData} = {
128
128
  rowapberry: {
129
129
  inherit: true,
130
130
  onDamagingHit(damage, target, source, move) {
131
- if (move.category === 'Special') {
131
+ if (move.category === 'Special' && !source.hasAbility('magicguard')) {
132
132
  if (target.eatItem()) {
133
133
  this.damage(source.baseMaxhp / 8, source, target, null, true);
134
134
  }