I cant speak for other people, but in my case, I chose to specialize Dragon-type, and they evolve sooo late. I just wanted to evolve someone, anyone from the party. The lowest evo was Bagon at lvl30, which I didn't hit until the trip to the fields with Cherry. I was stuck with baby dragons that would always get outsped and 1-shot by stronger trainers. Other than cyclizar, who is broken af, no other dragon I found was actually usable against stronger trainers. Dragon-parties basically consist of either Dragons that dont evolve and are way too strong even when underleveled, or babies that are way too weak even when overleveled. I was sick of spamming cyclizar, I've spammed cyclizar so much that it feels like my starter.
Again, I don't play this game. But I did play the mainline pokemon games. From Yellow (as in Japanese yellow) until ultra sun and moon. I also like dragon types so I feel your pain.
My solution has always been (since I write the cheat injector for this game and I hacked for cheats in the mainline games) to "evolve" the pokemon before their actual level. It might be a moot point now since you've already leveled Bagon, but it's possible in code (or console, in this case) to set a pokemon to be another pokemon. Just make sure to level it once via rare candy or something for the game to recalculate the stats properly. So, for example, get a dratini, level it up to whatever level you like -1. Set the dratini to be a dragonair. Use a rare candy to reset the stats. The downside, of course, is that if there ar any moves that the younger pokemon learns earlier, you'd miss some moves as they're often only learned during the level up process/procedure of a pokemon.
But also, I'm going to double what
ffive said. Among all the threads I lurk on F95, this is one of the most chill, friendly and with the least amount of vitriol. So much so that, again, I don't play this game, but I'm willing to make a cheat injector for it. So please, before you go calling people things, take a step back and take a deep breath. We're all here trying to help. It may not sound like it because it's hard to convey tone, much less intention, through written text.
If you're interested in my solution, all you need to do is change the Id of the pokemon to change that pokemon. So, you find what position the pokemon in question is in your party. Let's say the pokemon in question is second in your party. This pokemon would be:
Note it's 1, not zero because arrays start at 0, not 1 (So first pokemon in your party is playerparty[0]. Second pokemon is playerparty[1]. Etc.)
You just set:
to the id of the pokemon you want to turn it into.
Conversly, since we have access to the code, you should also be able to run:
Code:
playerparty[1].Evolve(<id of pokemon to evolve into here>)
It should recalculate the stats for you. It should work but be forewarned, I haven't tested this myself.
Side note: looking at the function Evolve() itself, it seems you can also recalculate a pokemon's stats by running:
Code:
playerparty[1].RecalculateStats()
instead of using a rare candy if you manually change a pokemon's Id.