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
129 stars 45 forks source link

[Feature Request]: Show catchrate for wilds for different balls and HP values #466

Open UTDZac opened 7 months ago

UTDZac commented 7 months ago

Tell us about your request

Writing this here so I don't forget it.

I want to be able to see an estimated catchrate for tossing a ball at a wild encounter. This should work for any ball (probably just the ones in by bag), including Safari Ball, and should also take into consideration the enemy HP value (estimated, of course) and status conditions.

Additional Information

No response

Fellshadow commented 7 months ago

Couple of relevant resoureces/references that were posted in the initial discussion:

Also note that in Ironmon everything is set to the same base catch rate as caterpie (may want to read this from the game for more general usage though)

jtigues commented 2 months ago

Noting for posterity: Base version of this is included now, but it assumes that a poke ball is used. Rates for the other balls are loaded but unused at this time as the implementation is not in its own screen

jtigues commented 2 months ago

Also noting that technically while the formula used is what is in the Gen 3 games, there are some inaccuracies especially at higher percentages due to rounding errors in the Gen 3 games. Folks will have likely observed that when playing using Kaizo rules, Pokeballs would guarantee a catch at around ~1/3 HP, but if the formula worked as intended you would actually only reach 100% with no status and a pokeball at 0% HP. Rounding errors could likely also be replicated to make the current formula more accurate, but for now using the actual intended formula

Update: we did the rounding error thing, formula is accurate respective to the in-game calculation now