kwsch / PKHeX

Pokémon Save File Editor
https://projectpokemon.org/pkhex/
Other
3.63k stars 682 forks source link

Complete Dex function removes shinies #4344

Closed TankedThomas closed 3 weeks ago

TankedThomas commented 3 weeks ago

Describe the bug This problem occurs with Scarlet/Violet, as well as BDSP. When using the Complete Dex function, any shiny Pokemon that has been seen gets unchecked. Also, any non-dex Pokemon that are in the game are not modified (though I suppose this may fit with the name of the feature, but it still seems counter-intuitive). BDSP's "Seen all shinies" function also doesn't work, and I'm including it here since it seems like it's probably related (or it's just because the save files for those games are a mess).

To Reproduce Steps to reproduce the behaviour: Assuming at least one Pokemon has been seen as a shiny:

  1. Go to 'SAV'
  2. Click on 'Pokédex'
  3. Click on 'Modify'
  4. Click on 'Complete Dex'

Expected behaviour Considering it's called "Complete Dex", I would expect the shinies to be checked as well, instead of remaining unchecked. This happens with some games (Let's Go, Either way, it shouldn't remove already-checked shiny Pokemon.

Screenshots Before: image After: image

Additional context I tested Sword/Shield but they did not have this bug. However, it also did not check unchecked shinies. On the other hand, most other games do check unchecked shinies. I tested Let's Go Pikachu/Eevee, ORAS, (U)S(U)M, and B2W2, all of which worked fine.

I also looked at XY and BW but I'd used the Complete Dex function on these saves many years ago so it's not a reliable test. It doesn't uncheck any boxes when run on these games though, for what it's worth. ~Incidentally, Legends Arceus doesn't have the Complete Dex functionality whatsoever, though it would be handy considering all the extra work required to complete it manually compared to other games.~ Never mind about this, I saw #3399 and related issues.

Maybe adding an option (something like "Complete Dex w/Shinies") that includes this functionality and leaving the current one as-is (minus the bug that removes them) would allow people to check all regular Pokemon or everything with shinies included.

kwsch commented 3 weeks ago

Hold Shift to set shinies too, otherwise it won't set shinies (sets them to false).

Not all shinies are available, and it's better to just play it safe and just not set shinies at all.

TankedThomas commented 3 weeks ago

But this is inconsistent between games. I didn't know about Shift functionality, so that's fine, obviously no need to add that functionality, but it seems weird to unset already-set shinies, especially since only SV and BDSP behave like this - all the other games don't unset them. Why are just these four games setting shinies to false when using Complete Dex but not the others?