aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-08-29fix formattingDaniel Schadt
2024-08-29update changelogDaniel Schadt
2024-08-29implement some new eventsDaniel Schadt
evtclib hasn't kept up too well with the newest things arcdps now reports. This commit at least introduces the correct CbtStateChange variants for all of the new features, and it adds "high level" EventKinds for some of them. There are still plenty of unimplemented ones, but we can get to that later. Since there are multiple "internal use" variants now, FromRawEventError::UnexpectedReplInfo has been renamed to UnexpectedInternalEvent.
2024-08-26fix formattingDaniel Schadt
2024-08-26fix clippy suggestionsDaniel Schadt
2024-08-26fix partial_cmp return value for equal itemsDaniel Schadt
2024-08-26turn comment on PartialOrd into a doc commentDaniel Schadt
Might be nice to have it readable in the documentation, not just the source!
2024-08-26impl PartialOrd for gamedata::EncounterDaniel Schadt
2022-05-11bump version to 0.7.3v0.7.3Daniel Schadt
2022-05-11add Ankka CM detectionDaniel Schadt
2022-04-20bump version to 0.7.2v0.7.2Daniel Schadt
2022-04-20fix mai trin success detection for early failuresDaniel Schadt
2022-04-20add tests for Mai Trin CMDaniel Schadt
2022-04-20add support for Aetherblade Hideout Challenge MoteDaniel Schadt
2022-04-01bump version to 0.7.1v0.7.1Daniel Schadt
2022-04-01Merge branch 'eod-strikes'Daniel Schadt
2022-04-01update changelogDaniel Schadt
2022-03-31EoD strikes: also recognize other Dragonvoid IDsDaniel Schadt
2022-03-31EoD strikes: add benchmarks for the analyzersDaniel Schadt
2022-03-31EoD strikes: implement Dragonvoid analyzerDaniel Schadt
2022-03-31EoD strikes: implement Minister Li analyzerDaniel Schadt
2022-03-31EoD strikes: implement Ankka analyzerDaniel Schadt
2022-03-31EoD strikes: implement Captain Mai Trin analyzerDaniel Schadt
2022-03-10bump version to 0.7.0v0.7.0Daniel Schadt
The EoD elite specs and strikes are not fully implemented yet, but delaying this release until they are would be a bit silly. After all, the old version cannot parse any log that has a new elite spec in it. Therefore, 0.7.0 shall be released with EoD elite spec support, so that downstream applications can be updated. We can always improve the EoD strike situation and implement proper analyzers later. As far as I can tell, Elite-Insights also does not parse them correctly just yet.
2022-03-10fix dragonvoid IDDaniel Schadt
Dragonvoid is one of those weird bosses which consists of multiple characters(?) that are structures and not even "normal" characters(??). The first ID we used seemed to not catch the actual logs that are now generated using an up-to-date arcDPS. I'm not sure if the old ID was necessarily wrong, but for some reason, it doesn't seem to match the actual ID that is currently used to log this fight.
2022-03-09add Boss/Encounter for new EoD strikesDaniel Schadt
2022-03-08add logs for EoD elite spec parsingDaniel Schadt
Many thanks to xyoz & neko for providing me with suitable log files!
2022-03-08add EoD elite spec IDsDaniel Schadt
This is the one thing that prevents evtclib from parsing new logs, as we can handle unknown bosses, but no unknown elite specs.
2021-11-25bump version to 0.6.1v0.6.1Daniel Schadt
2021-11-22add Twisted CastleDaniel Schadt
There's not many useful things we can do with this log, other than providing a way for downstream applications to identify those logs.
2021-11-19add benchmarks to the packagev0.6.0Daniel Schadt
Cargo will complain if the benchmarks that are defined in Cargo.toml are not found, so we need to include the sources - even if the benchmark itself cannot be run from the cargo package (due to the missing test logs).
2021-11-19Merge branch 'more-benches'Daniel Schadt
2021-11-19bump version to 0.6.0Daniel Schadt
2021-11-19small doc typo fixesDaniel Schadt
2021-11-18update the changelog moreDaniel Schadt
With a new release being on the way (and long overdue), it's time to get the CHANGELOG up to date with what actually happened since v0.5.0.
2021-11-18make EventKind non-exhaustiveDaniel Schadt
There are two reasons for this: First, we want to implement new events (and arcdps might add new events themselves) without having to release a new major version. Adding enum variants is usually a breaking change, because match blocks have to be adjusted to keep every variant included. This is the same reason why we made Encounter and Boss non-exhaustive as well. Secondly, the usual modus operandi is not to iterate through all events and do something for every event kind that you find, but rather to iterate through the events and look for the events that you find interesting. This means that most often, you will use a match with a "do-nothing" catch-all, an if-let or a matches!() anyway, in which case this change does not affect the code in a good or bad way.
2021-11-18update changelogDaniel Schadt
2021-11-18speed up Log::is_bossDaniel Schadt
It is way cheaper to retrieve the correct agent first (especially with the faster agent_by_addr) and then check if it is a boss, rather than iterating over all bosses (which iterates through all characters), and then iterate through the found bosses to check if any address matches. The new code is a bit longer (and doesn't combine the functions as nicely), but it is still readable and more performant - which is more important.
2021-11-18speed up Log::agent_by_addrDaniel Schadt
We know that the way we construct the Log, the agents are always sorted by their address. This invariant cannot be broken, as the only way to construct a Log is in evtclib itself, and there is no way to obtain a mutable view on the agent vector or change the address of an agent. Since Log::agent_by_addr is used by other functions, this speedup (even if it is small) can show in a lot of different places. Note that if we change the interface of Log in the future to allow creating logs from different sources that processing::process, we need to make sure we adjust this function.
2021-11-18switch order of operands in SH analyzerDaniel Schadt
Comparing the int is a very cheap operation, and it is also a very good indicator already that we've found the right event. Due to the short circuiting behaviour of &&, it is better to check that first before doing the Log::is_boss check - which is relatively costly. Remember that we do this check for every buff application event! This brings a speedup of around 50x: new: 654.1±25.18µs old: 34.9±0.69ms
2021-11-18formatting fixDaniel Schadt
2021-11-18clean up parsing benchmarksDaniel Schadt
2021-11-18add html_reports feature to criterionDaniel Schadt
2021-11-18add a Throughput to the analyzer benchmarksDaniel Schadt
2021-11-18add more benchmarks for analyzersDaniel Schadt
2021-11-17derive most traits for Agent and SkillDaniel Schadt
2021-11-17Implement FromStr for GameModeDaniel Schadt
This may be useful for downstream applications and it fits into the pattern of implementing it for Boss/Encounter.
2021-11-17Move game_mode to EncounterDaniel Schadt
If we already have an Encounter, it might be nice to determine the game mode from it as well - without needing to go through the whole log first. This is especially useful for raidgrep, where we can use the early filters - which don't have access to the whole Log item.
2021-11-16Add GameMode and Log::game_modeDaniel Schadt
For a lot of applications, it can be useful to distinguish between logs made in raids, fractals, ... Note that we probably don't want further categorization (as for example done in ezau).
2021-11-16Small documentation fix for EncounterDaniel Schadt