-
Notifications
You must be signed in to change notification settings - Fork 12
More Game Stats + Versioned Balance Data #1
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Imports are now relative so local testing can be done before pushing to PyPI. Will also create a release branch on GitHub. Also fixed an issue with control group events.
Added basic logging, updated parser to Blizzard's latest protocol, fixed multiple bugs that caused the parser to crash, added support for non-english languages and added a 'local' flag to to allow replays without MMR to be parsed.
Previously some modules were importing from s2protocol. These have been changed to absolute imports from the zephyrus_sc2_parser module now in an effort to stop circular import errors. Also added a 'detailed' flag that makes the parser return the full player objects.
For units such as Archons or Banelings which are created through morphing 1-2 units, the time at which these units were last morphed is now tracked.
Gameloop property of events wasn't being accessed correctly, this is now fixed. morph_time was being set on every TypeChange event, which meant units would be assigned a morph time when they changed modes.
Also fixed some gamedata values and fixed an issue with workers produced and workers killed
Need to verify upgrades and add Banshee and Cyclone unit data
Still need to test energy and properly implement ability tracking
Laying the groundwork to analyze and attribute abilities, still need to implement locations to track building abilities though. Inject efficiency has been implemented along with untested orbital efficiency. Engagement analysis has been integrated and tested.
Archons also produce a UnitInit event. May also need to check against Zerg morphing units, but should be largely irrelevant.
Version-specific balance data is now generated and loaded programmatically. This should allow accurate parsing of previous old replay protocols thanks to data from sc2reader.
Added a few essential abilities and fixed a small bug with versioning
Energy values, efficiency and idle time >50 energy are now tracked for Nexus and Orbitals. These values are recorded both in the timeline and game summary. Core parts of this implementation: ability attribution (ability_event), energy calculations (game_obj) and data recording (player_state, parser)
Creep approximation is based on estimating the number of tiles covered in creep generated by Hatcheries and Creep Tumors. Creates a generous semi-circular estimation (~2% more tiles than actual) and records all tile co-ords included in the estimation in a set (I.e. no duplicate tiles).
This reduces parsing time long term because the map data won't need to be constantly fetched.
Changed players from a list to dict to be consistent throughout the parser. Changed Supply Block from gameloop to seconds. Added warpgate efficiency and idle time to timeline + summary. Update race stats for Zerg and fixed minor issues with player_state.
Cleaned up some more files from the merge. Also added a check for whether the engagement simulation extension is installed so as not to crash the parser if it isn't.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This update focuses in adding more capability to the parser by extracting more information from replays.
Game stats added (All to timeline and summary):
Other additions include:
I'm still working out the best way to distribute the Python extension for sc2-libvoxelbot, so for now engagements will return an empty list if the extension is not detected.
There is now also versioned balance data with the correct ability and unit ids.