Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Explicitly list base evolution forms #1093

Open
itsdarsh opened this issue Mar 8, 2025 · 0 comments
Open

Explicitly list base evolution forms #1093

itsdarsh opened this issue Mar 8, 2025 · 0 comments
Assignees
Milestone

Comments

@itsdarsh
Copy link
Collaborator

itsdarsh commented Mar 8, 2025

GetBaseEvolution improperly passes a parent's form to a child if the parent has a different form index and there is no intervening pre-evolution that matches the child's form. To illustrate, Alolan Exeggutor will breed an Exeggcute with form 2, but Alolan Raichu will breed a Pichu of form 1 (note that this works properly since Pikachu form 2 aka Surfing Pikachu is a cosmetic form).

Really, the underlying issue is that GetBaseEvolution scales very poorly as new Pokemon and variant forms are added to Polished. The safest and most scalable fix is to explicitly list as part of egg moves which Pokemon is the base evolution. This is less memory efficient than calculating base evolution dynamically but more sustainable. Note that GetNewBaseExp would need a rework as well, since it cares about what stage a target Pokemon is.

@itsdarsh itsdarsh added this to the 3.2.0 milestone Mar 11, 2025
@itsdarsh itsdarsh self-assigned this Mar 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant