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

Open Book play mode feature #404

Closed UTDZac closed 1 year ago

UTDZac commented 1 year ago

Added Open Book play mode. Enable this log feature to see log info while actively playing the game. The option lives in the Log Viewer's Misc tab option list, since it's more-or-less part of the log.

(This feature requires the extended Log Viewer routes feature, that PR must be merged in first)

Info Revealed by Open Book

Quick Access to the Log

Added a magnifying glass button in the space where the survival PC heals get shown on the main Tracker screen. Clicking it opens the log viewer. Also, clicking on the Pokémon icon and/or stats area of an enemy Pokémon will opens the log viewer for that Pokémon, offering quick-access to the log.

image

Feature Complications

To get this feature to work, I told the Tracker to parse the log file when it starts up. This adds a bit of time to startup, since parsing the log can take a second or two. Don't really see a way around this, since you need access to all that info in order to display it while actively playing. If no log is auto-detected (from Quickload settings) to be parsed, then it prompts the user to open it. Again, no good way around this. As a result of this, I added a "warning" to the Open Book option to help inform the player that some extra stuff has to happen in the backend, and on their part, to make this feature work.

openbook-feature

UTDZac commented 1 year ago

This also makes a few tiny changes to the Log Viewer itself, such as showing the route info on the main tracker screen when viewing a single route on the log viewer screen. This technology didn't exist before, as I had to add in updates to make the route info tracker screen reveal all the game's current Pokémon. With this inclusion, I added back in the selection box around the log viewer route screens encounter list, so its more clear that you know which encounter you're viewing and that you can swap to view a different one.

image