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

[UI/UX] Internal pokedex #5083

Open
wants to merge 89 commits into
base: beta
Choose a base branch
from

Conversation

Wlowscha
Copy link
Contributor

@Wlowscha Wlowscha commented Jan 4, 2025

What are the changes the user will see?

A new "Pokedex" entry is available in the game menu, accessible from the title page or during a run. Selecting the option opens the Pokedex interface, which has two parts:

  1. A display of all mons in a box-like container, identical to the starter-select menu, but displaying evolutions as well as starters. In addition to the filter bars from the starter-select menu, new text forms allow to search mons with a given name, move, or ability. Bringing the cursor on a mon displays the name, number and sprite of the base form. By default, icons do not include shiny overlays, candy icons and abilities, but these can be toggled on with C.

  2. Clicking on a mon will open a second page, where a second menu allows details such as level moves, egg moves, biomes etc to be displayed.
    For egg moves and abilities, the ones that have not yet been unlocked are shown in darker text, but still visible to the user.
    The Evolutions entry shows a list of prevolution, evolutions, and forms available during a run such as megas and g-max forms. Selecting one brings the user to another page for that specific evolution stage or form.
    What options exactly should be available in what shape is still to be finalized.

It should also be possible for users to buy candy upgrades directly from the dex page, without needing to interrupt a run and go through the starter select screen. This is not implemented yet but the logic is already there, it is a matter of picking a button.

Why am I making these changes?

An internal dex is a key functionality. Having to leave the game in order to look up information can be bothersome; in the case of mobile users, it can lead to the game shutting down and reloading altogether. Moreover, the dex can implement some functionalities, such as buying candies, which are currently unavailable during a run and require to go back to the title screen.
Most importantly, a functional internal dex reduces the need to rely on external sources, and ensures that data is always fully up to date.

What are the changes from a developer perspective?

Balance:
Helper functions have been added in biomes.ts, pokemon-evolutions.ts and tms.ts, to collect information that the pokedex needs to access in a compact form.

Ui:
The ui/abstact-option-select-ui-handler file has been modified to change the color of individual options, as well as to allow the insertion of lines which are skipped by the cursor (such as headers or descriptions). The new version replicates the old behavior in all cases, but allows for more customization of the menus if required.

The ui/dropdown.ts file has been extended to include a scrollbar when there are too many options (needed for the biome filter).

A new ui/pokedex-ui-scan.ts has been added to manage the auto-complete interface that selects names, moves or abilities.

The ui/pokedex-ui-handler.ts and ui/pokedex-page-ui-handler.ts files have been added, replicating and changes functionality from starter-select-ui-handler.ts.

The ui/pokedex-info-overlay.ts file has been introduced to display e.g. ability descriptions while dynamically resizing the box.

Relevant ui files have been updated to accomodate the new options.

IMPORTANT: Since a new option is being added to menu-ui-handler.ts, it will be necessary to make some space there, or the menu will fall out of the screen.

Screenshots/Videos

Layout of the first page, plus the name filter (Ponyta getting both Standard and Galar versions)
Showcase.Layout.mp4
Some combinations of filters of moves and abilities
Showcase.Filter.Moves.Abilities.mp4
Displaying stats, moves, abilities and so on for a given mon; switching between evolution stages and forms
Showcase.Evolution.Forms.mp4
Biome filter: can be used e.g. to look for uncaught mons or shinies in a given biome, also allows a combination of biomes
Showcase.Biome.mp4
Data for uncaught mons (this will need some polishing)
Showcase.Uncaught.mp4
Toggling decorations on, filtering shinies, looking at unlocked shiny forms for a given evolution line
Showcase.Shiny.mp4

How to test the changes?

Open the menu, select Pokedex and enjoy!

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)?
    • Have I made sure that any UI change works for both UI themes (default and legacy)?

Are there any localization additions or changes? If so:

…ters does not reset scrollIndex; toggle button for decorations
…ow ability descriptions; properly displaying sprites for megas and other forms
@Madmadness65 Madmadness65 added Enhancement New feature or request UI/UX User interface/-experience related labels Jan 4, 2025
@Wlowscha
Copy link
Contributor Author

While in page mode, it is now possible to go from one Pokémon to the previous or next, in Pokédex order, by pressing left or right. Choice of shinies and variants are remembered while scrolling; for example, if a T3 shiny variant is selected, the same variant will be shown for other mons if available, and the highest available will be shown otherwise.

left_right.mp4

@Wlowscha
Copy link
Contributor Author

Wlowscha commented Jan 17, 2025

ice_beam
andThunderbolt
pickup-run-away

Filtering moves and abilities now shows symbols to distinguish egg/tm moves and passive abilities at a glance.

The behavior of Ability filters has been updated. Either filter now searches for both abilities and passives; if both filters are filled, they search for mons with exactly that combination of ability and passive (see figure above).

Wlowscha added a commit to Wlowscha/pokerogue-locales that referenced this pull request Jan 17, 2025
Both ability filters now search either abilities or passives, so the distinction in the label no longer applies. See this comment: pagefaultgames/pokerogue#5083 (comment)
@Wlowscha
Copy link
Contributor Author

Pokedex entries can now be accessed through the party screen, both during battle and from the shop:

Pokerogue.Mozilla.Firefox.2025-01-20.20-35-05.mp4
Pokerogue.Mozilla.Firefox.2025-01-20.20-35-53.mp4

The page opens on the current form, gender, shiny and variant.

@Wlowscha
Copy link
Contributor Author

starter_dex

Pokedex entry is now also accessible from the starter selection screen.

@Wlowscha
Copy link
Contributor Author

Various screenshots of evolution requirement descriptions are shown here:
pagefaultgames/pokerogue-locales#101 (comment)

Note that some conditions are joined together by a connector ", "---this might need to be localized, and perhaps the logic itself of combining the conditions will have to be adjusted for different languages.

damocleas
damocleas previously approved these changes Jan 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request UI/UX User interface/-experience related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants