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

[Bug][UI/UX] Dex bug fixes 12 feb #5307

Merged
merged 16 commits into from
Feb 13, 2025

Conversation

Wlowscha
Copy link
Contributor

@Wlowscha Wlowscha commented Feb 12, 2025

What are the changes the user will see?

Important bug fixes:

  • A game-breaking bug that allowed to buy eggs of evolved species from the dex has been fixed.
  • Move filters work properly, without crashing when finding egg moves
  • Level up moves are displayed correctly for alternate forms
  • In case that a save has unobtainable unlocks for evolutions, they are filtered out.

UI/UX fixes:

  • The Pokédex buttons now show up as expected on the mobile touchpad
  • The filter text now only allow values that can be selected (pokémon, move or ability names) and other selections simply return the default "---".
  • When opening a filter text, the cursor goes to the input text without requiring a mouse click.
  • Shinyness is maintained when turning pages (this had broken when changing the function of the shiny button).

Visual fixes:

  • Fixed a visual bug where the "form cycle" button overlapped the "uncaught" button for uncaught form of a caught species
  • The form text is now hidden when switching to filters
  • Forms that are labeled "Normal" now don't show form text. This is especially relevant for evolutions (Raichu, Vaporeon...) and Marshadow who does not have an alternate form in the game.
  • The form text, name text and number have been slightly displaced to avoid overlap in localized text.

Changes from a developer perspective

Most fixes are only one or a few lines of code. The most extensive commit is the one which adds a getFullUnlocksData() method to PokemonSpecies: this returns what the caughtAttr bigint would be for that mon if it had all obtainable unlocks (shiny variants and genders). This is used in various places in the dex to ensure that illegal variants are not displayed even for old or corrupted savefiles.

Screenshots/Videos

Filter working properly for egg moves:
bouncy

Level up moves are correct for alternate forms:
pika0
pika1

No overlap between uncaught and form cycle button
vivi

Checklist

  • I'm using beta as my base branch
  • There is no overlap with another PR?
  • The PR is self-contained and cannot be split into smaller PRs?
  • Have I provided a clear explanation of the changes?
  • Have I tested the changes manually?
  • Are all unit tests still passing? (npm run test)
  • Have I provided screenshots/videos of the changes (if applicable)?

@Wlowscha
Copy link
Contributor Author

Wlowscha commented Feb 12, 2025

Pokedex buttons showing up in the touchpad (emulated on firefox, hopefully that's enough):
mobile_touch1
mobile_touch2

@Madmadness65 Madmadness65 added UI/UX User interface/-experience related P2 Bug Minor. Non crashing Incorrect move/ability/interaction labels Feb 12, 2025
Madmadness65
Madmadness65 previously approved these changes Feb 12, 2025
@Wlowscha
Copy link
Contributor Author

Hotfix to prevent base forms from showing the "Normal" text. This is especially important for evolutions such as Umbreon or Raichu, and also mons with no alternate forms such as Marshadow.

This only applies to the dex, in the rest of the game forms are shown as before!

umb
pika11
pika12
marsh

@Wlowscha
Copy link
Contributor Author

Wlowscha commented Feb 12, 2025

Fixing a bug where players were able to insert gibberish in the text filters and no Pokémon would show up; now, the text is limited to valid strings.

Additionally, the cursor starts on the input text without requiring a mouse click (that is still required to select or cancel).

Pokerogue.Mozilla.Firefox.2025-02-12.22-14-12.mp4

@Wlowscha
Copy link
Contributor Author

Wlowscha commented Feb 12, 2025

Some save data may mark unobtainable variants as caught. The current fix ensures that no unobtainable variants (as well as genders) can show up. Demonstrating on the full unlock file:

full_unlocks_new

Pokerogue.Mozilla.Firefox.2025-02-12.23-55-35.mp4

@Wlowscha
Copy link
Contributor Author

Buying eggs from dex now works properly even from the evolution page:

Pokerogue.Mozilla.Firefox.2025-02-13.00-13-16.mp4

@Wlowscha
Copy link
Contributor Author

No overlap between name and form name:
electrode2

@Wlowscha Wlowscha marked this pull request as ready for review February 13, 2025 00:19
@Wlowscha Wlowscha requested a review from a team as a code owner February 13, 2025 00:19
@Wlowscha Wlowscha changed the title [UI/UX] Dex bug fixes 12 feb [Bug][UI/UX] Dex bug fixes 12 feb Feb 13, 2025
@DayKev DayKev added P0 Bug Completely gamebreaking or catastrophic bugs P1 Bug Major. Game crashing move/ability/interaction P3 Bug Non gameplay affecting bug. typos, graphical issues, or other minor incorrect interactions. labels Feb 13, 2025
Madmadness65
Madmadness65 previously approved these changes Feb 13, 2025
@Wlowscha
Copy link
Contributor Author

In the pokedex, the starter's caughtAttr is always checked in addition to the current pokémon's caughtAttr. This is done because some save file may have unlocks for evolutions which are in principle allowed, but which they still should not have. An example here:

Before:
bad_variants

After:
fixed

@DayKev DayKev merged commit be0f3b2 into pagefaultgames:beta Feb 13, 2025
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P0 Bug Completely gamebreaking or catastrophic bugs P1 Bug Major. Game crashing move/ability/interaction P2 Bug Minor. Non crashing Incorrect move/ability/interaction P3 Bug Non gameplay affecting bug. typos, graphical issues, or other minor incorrect interactions. UI/UX User interface/-experience related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants