besteon / Ironmon-Tracker

A Lua script for the Bizhawk/mGBA emulator compatible with Pokemon Fire Red, Leaf Green, Ruby, Sapphire, and Emerald that tracks relevant data for the IronMon challenge.
MIT License
125 stars 44 forks source link

Include known range for learned moves & display definitely known moves #468

Open jwunderl opened 5 months ago

jwunderl commented 5 months ago

Run the other day had an instance where gym leader had the same mon as the player. Player ended up speeding through looking at the tracked moves & forgot for a moment they were the last moves the player mon had learned, not the ones you'd see at there level.

The three main changes intended:

There's definitely some clean up I listed inline, just making a pr to point to as a reference for discord :)

Couple quick screenshots of what this does after:

image image

jwunderl commented 5 months ago

Zac pointed out https://github.com/besteon/Ironmon-Tracker/issues/202, so for reference what this would display for the mons mentioned in that issue:

Forretress after step 3

assuming only the moves described, so the move history showing:

ember min 8 max 8 steel wing min 3 max 5 psychic min 3 max 5 fire punch min 3 max 5 dream eater min 3 max 5 (the first move seen, as shown in screenshot as it's the one not listed)

lvl 3-5 show

lvl 6-7 shows

lvl 8 shows

lvl 9+ shows

krabby

https://github.com/besteon/Ironmon-Tracker/issues/202#issuecomment-1359200969 I'm assuming move order is that they were seen top to bottom to illustrate, but it only swaps out what the *'d ones will be, which would show in the same priority order as they do now

lvl 3-7

lvl 8

lvl 11

lv 15-17

lv 21-22

lvl 27

lv 30

all other levels get same as now except * on moves (besides whatever is on page 2)

Altaria

https://github.com/besteon/Ironmon-Tracker/issues/202#issuecomment-1363686571

lvl 27

lvl 28-31

lvl 32-33

all other levels get current behavior

One other minor improvement I could see including would be to use level ranges for simple cases as well -- that is, since an altaria learns moves at 11 and 18, we know that seeing a move at 11 means it will have it until 17 at least. This would make it so e.g. we'd also know all the moves for sure when seeing a level 34 altaria in the example above.

In theory we could calc out even more for altaria, but that would be a mistake both for code complexity reasons & doing the work for the player -- just give them the obvious ones and indicate they should treat the others with suspicion / investigate move history to see what they can figure out