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

Tracker more accurantely tracks enemy moves and the level at which it had that move #202

Closed
UTDZac opened this issue Aug 20, 2022 · 6 comments · Fixed by #315
Closed

Tracker more accurantely tracks enemy moves and the level at which it had that move #202

UTDZac opened this issue Aug 20, 2022 · 6 comments · Fixed by #315
Assignees
Labels
Enhancement A change to an existing feature Low Priority Issues that don't have a major negative impact on fuctionality or usability Move Tracking Bugs/Features relating to move tracking

Comments

@UTDZac
Copy link
Collaborator

UTDZac commented Aug 20, 2022

Version: 0.6.1

Currently only four moves are tracked for any enemy Pokemon. This can often times be inaccurate in a sense that encountering the same Pokemon at different levels show incomplete move information. Easiest when shown with an example, see blow.

missing dream eater

Here you can see I've encountered the Forretress quite a few times, mostly around levels 3, 5, 6, and 8. It has four unique moves before level 8, then learns a fifth move at that level. This screen above shows the movelist for the level 8 Forretress, which is wrong because I'm looking at a level 5 Forretress. It is missing the move Dream Eater (its first level 1 move).

My proposed solution is to track ALL unique moves of a Pokemon at all times. It would also associate / update the move with the lowest relevant level of the encounter Pokemon (internal tracked data information). This way the Tracker can more accurate display to the user the proper moves at the proper level, for any level of Pokemon that they run into.

Example flow of this implementation:

  1. User encounters the first Forretress at level 5. They scout all of the moves. The data stored in the tracker would then be:
Move Min Level Seen
Dream Eater 5
Steel Wing 5
Psychic 5
Fire Punch 5
  1. The user continues to check the grass and encounters the lv 8. The data stored in the tracker would then be:
Move Min Level Seen
Dream Eater 5
Steel Wing 5
Psychic 5
Fire Punch 5
Ember 8
  1. The user continues checking grass, encountering the lv3 Forretress. Data would be:
Move Min Level Seen
Dream Eater 3
Steel Wing 3
Psychic 3
Fire Punch 3
Ember 8

Additional Resulting Feature (new issue to be added later)

Once this is implemented, this allows us to provide the user with more information about any give Pokemon via the Pokemon Info Screen. When viewing the Pokemon info page and looking at "moves learned at a level" they can then click that area to see the full list of knowledge about the moves. This is basically the same info they would have if they were manually tracking the levels of moves for each encounter and updating them along the way (similar to the data tables above).

@UTDZac UTDZac added Enhancement A change to an existing feature Move Tracking Bugs/Features relating to move tracking labels Aug 20, 2022
@UTDZac
Copy link
Collaborator Author

UTDZac commented Aug 20, 2022

We can use this as an opportunity to capture additional move data and track it. For example, when you transform into a pokemon, then we can track each of their moves:

Tracker.TrackMove(moveId, opposingPokemon.level) (x4)

We can do the same when we choose to actively use a Pokemon on our team, similar to how we do this for ability tracking

-- Always track your own Pokemon's ability once you decide to use it
Tracker.TrackAbility(ownersPokemon.pokemonID, ownersAbilityId)

@UTDZac UTDZac self-assigned this Aug 21, 2022
@UTDZac
Copy link
Collaborator Author

UTDZac commented Aug 22, 2022

Leaving a note here that this was significantly more challenging to solve than I had initially considered. I think since this is fairly low priority I will label it as such.

However, I will take this time to rework the way that moves are drawn onto the screen, instead turning them into borderless buttons. This cleans up a bit of logic in some places, and allows us to more easily create a "Enemy Info Screen" that a few people have requested. More on that at a later time.

@UTDZac UTDZac added the Low Priority Issues that don't have a major negative impact on fuctionality or usability label Aug 22, 2022
@UTDZac
Copy link
Collaborator Author

UTDZac commented Nov 27, 2022

I'm wanting to revisit this, but only after mGBA support is finished, as that has reworked a ton of how move data is built up to be displayed

Another user/viewer suggested this:

Oh, one thing I noticed the other day Zac, any plans to do internal tracking for when moves are learned? i.e. you see an umbreon at level 40, then see one in the grass at level 20, while in combat with the level 20 mon you see the moves it used when you encountered it at level 40.

@UTDZac
Copy link
Collaborator Author

UTDZac commented Dec 20, 2022

This is being worked on through this branch: https://github.com/besteon/Ironmon-Tracker/tree/utdzac/tracked-move-history

Ultimately going with a simpler solution that doesn't worry about what four moves are shown on the main Tracker Screen, but rather offering a way to see the full tracked move history for all mons.

image

@UTDZac UTDZac linked a pull request Dec 21, 2022 that will close this issue
@UTDZac
Copy link
Collaborator Author

UTDZac commented Dec 22, 2022

Feature is done and available in version 7.1.0.

@UTDZac UTDZac closed this as completed Dec 22, 2022
@UTDZac
Copy link
Collaborator Author

UTDZac commented Dec 23, 2022

Here's another scenario where seeing multiple different levels of the same Pokémon causes the "4 move window" display on the main Tracker screen to fail to understand how to appropriately show all possible moves.

In this case, i believe (mostly guessing) the last few Altaria encounters were:

  1. 32
  2. 27
  3. 33
  4. 30
  5. 33

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement A change to an existing feature Low Priority Issues that don't have a major negative impact on fuctionality or usability Move Tracking Bugs/Features relating to move tracking
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant