Trainer Classes is a classes-based system that a player can choose from. In order to obtain new "Features" in a class, you must have a specific amount of EXP. It may consume 10 Player Levels to obtain a new feature in a class (maybe later features require more EXP.) A player is rewarded some EXP for fighting a wild Pokemon, more when fighting a NPC Trainer, and even more when obtaining a Badge. A Player may only have a specific amount of Trainer Classes, if only one depending on how many Features there are for each class. After a class and feature is chose, the EXP is lost. A player may "retrain" features and a class, allowing them to choose a different class through an NPC (Although the EXP is either a 50% refund or completely lost).
Here are some of my ideas for Trainer Classes and some features that they obtain:
1.) Aftercare - After each battle, each of your in party Pokemon instantly recover 1/16th of their Hit Points. (This could be improved later to 1/10th.)
2.) Field Medic - Restorative Items you apply to your Pokemon provide an additional 10 Hit Points. If applied outside of combat, they restore an additional 20 Hit Points.
3.) Stay With Me! - You are able to revive to 100% Hit Points Pokemon without an item outside of combat. (This would have a massive cooldown, something like 5 minutes)
1.) Elite Trainer - Your Pokemon receive 10% more EXP from battles. (This does not apply to Rare Candies or XP Candies.)
2.) Observant - Your Pokemon act as if they gain +1 Evasion Combat Stage towards incoming attacks that have been used on the round prior.
3.) Critical Moment - When your Pokemon is at 1/4 or less Hit Points, they gain +1 Combat Stage of your choice. (This is chosen as soon as you obtain the feature and you may change it outside of combat at will.)
1.) Hits the Spot - Whenever your Pokemon consumes a Berry or a "Food" item, they recover an additional 1/10th of their Hit Points. (This does not stack with Leftovers.)
2.) A Healthy Snack - If your Pokemon consumes a berry that provides Combat Stages, it provides an additional combat stage.
3.) Filled Stomach - If your Pokemon are holding a berry item, the first damaging attack they receive in a battle is reduced by 1/8th.
1.) Any Pokemon below 450 Base Stat have each of their Stats increased by 10 while in your party.
2.) When you successfully hatch an egg, you may choose the Ability or Nature of the Pokemon (if there is a choice).
3.) Your unevolved Pokemon act as if they have the same Tutor and TM/HM move pools as their final evolution.
1.) Gotta Catch 'Em All! - Your chances to catch a Pokemon in a Pokemon is increased slightly (Maybe like a 10%?) If it is a species you already own, then the chances are doubled.
2.) Quick Release - Pokemon you release act as if they have +1 Combat Stage in Speed for the first turn they can act.
3.) Shiny Hunter - Pokemon you catch have a small chance of turning shiny, even if they weren't before.
I have very little knowledge in programming so this might be a very ambitious project and some of these features may be very complicated. But I feel that this would be an amazing feature every player would love to see! I have additional concepts relating to this idea of Trainer Classes and all of the above are just suggestions! Feel free to comment more suggestions and build from here. I'll be very excited to see any discussions or if this receives any sort of attention.
In addition to these changes, if you're worried about the impact for PvP, you could always create the option to turn off trainer classes for PvP battles.