A ver, yo no toco mucho este tema, ya que es perteneciente al scripting.
La manera más fácil que se me ocurre en tal caso es simplemente modificar el script de daño, puedes hacer únicamente que los Pokémon del rival no sufran daño alguno ni tampoco se les altere el estado, si tiene que ver con el lore en un momento imposible de la historia.
Si es simplemente aumentar la IA (inteligencia artificial) también hay métodos, sin embargo, ninguna IA es completamente invencible por sí misma, sin dotarla de ciertos recursos, como por ejemplo "Restaurar todo infinito", cosa la cual también forma parte del scripting, y de todas formas siempre se puede hacer OHKO (One hit KO) a sus pokémon, de forma que también habría que dotarlo de "Revivir infinito" mediante scripting, haciéndote perder a ti por puro desgaste. Cosa la cual puede hacerse pesada e insoportable.
De forma que si lo vas a hacer, te recomendaría también aumentar el nivel de daño recibido (sripts again) para que el entrenador susodicho acabe contigo deprisa.
Con respecto a los cambios dependiendo de la elección que hagas, no tengo ni idea. Imagino que sí podría hacerse, pero me temo que no podré solucionar esa duda.
Tampoco ninguna acerca de cómo hacer todo lo previamente comentado, simplemente te posteo mis ideas.
Si algún scripter quiere completar mi info, muchas gracias <3
The Archmage~