[Bug][UI/UX] Shiny button can cycle variants even if non-shiny form is uncaught #5457
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why am I making these changes?
When the variant button was removed by #5213, a minor bug was introduced which prevents the player from switching between variants if the non-shiny form is not caught. This has been reported on discord e.g. here. See also these screenshots (from a save where all three variants of Miraidon are unlocked, but the non-shiny form is not): the "cycle shiny" button does not appear.


What are the changes from a developer perspective?
canCycleShiny
is now true if at least two variants are caught. The logic for cycling shiny has been reworked to loop correctly ig the non-shiny form is not caught.Screenshots/Videos
Shiny Miraidon cycling correctly:
Pokerogue.Mozilla.Firefox.2025-03-01.17-42-09.mp4
Proof that the button is still working properly when non-shiny forms are also caught:
Pokerogue.Mozilla.Firefox.2025-03-01.17-45-08.mp4
Checklist
beta
as my base branchnpm run test
)npm run create-test
) or updated existing tests related to the PR's changes?