These trainers are not necessarily bounded by their vanilla pokemon. Instead, competitive teams are created using a custom battle generator. The matches get more difficult with time, starting off with low variance but starting to use competitive moves by Gym 3 and items by Gym 4. The gym themes are setup at about 3:1 ratio but may include unknown types. There is always at least 1 from the “may include” column.
*Misty and Brock use anime inspired teams 🙂
|Brock||Rock, Ground*||16||n||Onix, Sudowoodo|
|Misty||Water, Fairy*||24||n||Starmie, Togetic|
|Erika||Grass, Water||40||n||Vileplume, Victreebel|
|Koga||Poison, Dark||48||y||Muk, Weezing|
|Sabrina||Psychic, Fairy||56||y||Alakazam, Espeon|
|Blaine||Fire, Dragon||64||y||Arcanine, Incineroar|
|Giovanni||Ground, Dark||72||y||Nidoking, Rhyperior|
|Lorelei||Ice, Water||80||y||Cloyster, Mamoswine, Slowbro|
|Bruno||Fighting, Steel||80||y||Lucario, Conkeldurr, Machamp|
|Agatha||Ghost, Dark||80||y||Gengar, Aegislash, Mimikyu|
|Lance||Dragon, Fire||80||y||Dragonite, Gyarados, Charizard|
Always includes Persian. *may level scale.
Always includes their starter. *may level scale.
|Route 22||Grass, Water, Fire||12*||n|
|Cerulean||Grass, Water, Fire||21*||n|
|SS Anne||Grass, Water, Fire||24*||n|
|Poke. Tower||Grass, Water, Fire||35*||n|
|Silph Co||Grass, Water, Fire||42*||y|
|Route 22||Grass, Water, Fire||72*||y|
|Champion||Grass, Water, Fire||80||y|
All regular trainers use the vanilla engine to generate a random pokemon of similar power and type, baring a few special cases to enable uncommon or non-existent types (fairy, dark). Hence, whenever you are in a battle, you can expect the trainer to use the same types they were using before. If they have a dual-type, one is chosen randomly. They start to scale to your level and use competitive movesets later on.