ArchipelagoMW / Archipelago

Archipelago Multi-Game Randomizer and Server
https://archipelago.gg
Other
494 stars 646 forks source link

Pokemon Emerald: Force Fully Evolved behavior switch #3945

Open m4-used-rollout opened 1 month ago

m4-used-rollout commented 1 month ago

What feature would you like to see?

Currently, Force Fully Evolved seems to remove unevolved Pokemon from the available pool when replacing a Pokemon over the level threshold. This leads to suboptimal behavior with Match Base Stats if Force Fully Evolved is set too low. Other popular randomizers (like Universal Pokemon Randomizer) treat Force Fully Evolved as a second pass, checking each already-chosen replacement Pokemon above the level threshold and changing their species to be the highest evolution of that line.

Please consider adding the second behavior and letting the user choose how Force Fully Evolved works.

Exempt-Medic commented 1 month ago

@Zunawe I suppose. Though I'm unsure whether world-specific requests should be on the Github or just in the server

Zunawe commented 1 month ago

I'll take this into consideration, but I'm not sure if I'll modify the behavior. I did originally consider whether the behavior you're describing should be the approach, but decided in favor of what we have.

You say "suboptimal", but I think we're really just talking about different expectations. In my opinion, when you ask the program to try to match base stats, you're hoping that the relative power of a trainer is roughly the same. It's logical that combining it with a low force fully evolved option might constrain the pool from which it can pull species that have an appropriate "strength". Your suggested method always causes "BST inflation". Someone might choose match base stats, force fully evolved at 25, and then be surprised by Norman throwing out 3 Slakings, which I would argue is a betrayal of the player's specified options. It also has the side effect of preferring stage 3 final evolutions over stage 2 final evolutions over species that don't evolve.

Adding a toggle is, as ever, possible, but it adds complexity to the code and some amount of bloat to the options (though we have tools to better mitigate that these days). I didn't know that's how UPR handled it, so I suppose that's good to know. But I'm not looking to match UPR just because it's established, and I'm not thrilled about maintaining two different behaviors, so it'll probably stay how it is for now.

m4-used-rollout commented 1 month ago

Maybe at least add a warning to not set Force Fully Evolved below level 40-45 if you're having it match BST then. Otherwise you end up with a ton of mid-game trainers limited to basically Smeargle, Ditto, Farfetch'd, and Unown.