-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Vanilla trainers' Pokémon have wrong PIDs/Natures #3641
Comments
Does anyone know if there is a resource that lists all natures for each trainer's pokemon? |
There's probably a resource, but an alternative approach would be to build a vanilla Emerald, and use |
That's a good idea. I'll see what I can do. |
On second thought (and as discussed with some others on Discord):
In summary, I don't think this is as much of an issue in practice as it is made up to be and the hassle to "fix it" (when the vast majority of hacks will be changing Trainers anyway) isn't worth the merge conflict hassle for everyone downstream. |
That's fair. This issue was motivated by #3545, which would set all the natures to a neutral one (Hardy as-written), because that's what it means to not specify a nature. Do we think that "not specified ⇒ neutral" is okay? I was keen to avoid implementing the hashing logic in the conversion script, which is why it only ports explicitly specified data; but I suppose an alternative option would be to generate a random nature (and gender) if one isn't explicitly specified. If we think this isn't an issue then I'll probably resubmit #3545 for consideration when I'm back. |
I think setting the neutral nature as the default is reasonable and in my opinion preferable for people who don't want to mess with natures but still don't want a negative nature on a mon. Imo this could have been the default when trainer control was introduced. |
Fixed by #4172 |
Description
#3114 changed all the vanilla trainers to
TrainerMonCustomized
, butTrainerMonCustomized
generates its PIDs using a CRC32 of the party member being generated, whereas vanilla generates its PIDs from a hash of the trainer name combined with hashes of the species names that have previously been generated.The PID affects the nature of the generated Pokémon. The gender and ability are unaffected because the hash is
<< 8
.Note also that because the species names are part of the hash, decapitalization would also affect the vanilla hash and alter the natures.
Because of the above, I think the best fix for this would be to explicitly list the natures in
src/data/trainer_parties.h
. We probably shouldn't just change back to a vanilla-compatible hash because that would change the natures of parties that were balanced around the current nature, although perhaps in practice that wouldn't be a big problem.Version
1.6.2 (Default)
Upcoming Version
No response
Discord contact info
No response
The text was updated successfully, but these errors were encountered: