aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-02-16wrap zip reading in BufReaderDaniel Schadt
2019-02-16implement new state changesDaniel Schadt
2018-10-15fix Deimos encounter IDDaniel Schadt
2018-10-15add fractal CM idsDaniel Schadt
2018-10-15derive FromPrimitive for BossDaniel Schadt
Makes it easier to deal with boss ids, as they are usually given in numeric form.
2018-10-15add encounter ID for all w1-w6 bossesDaniel Schadt
2018-10-10add AttackTarget, Targetable, MapId statechangesDaniel Schadt
2018-10-10update to latest arcdpsDaniel Schadt
This comes with several changes: First, the revision header field is now properly parsed and saved, instead of just being hardcoded to zero. This is the first step in allowing newer log files to be parsed. To accommodate this, the Header struct has been extended with the "revision: u8" field. To be able to parse both formats, the CbtEvent struct has been changed. It is now the unification of both the new struct and the old struct, as the changes are pretty minor and mostly concern the parsing itself. The data types have been adjusted, and two fields have been added. Moving fields around does not concern CbtEvent at all. If the struct diverges more from this in the future, some splitting might be introduced, but for now, the change is pretty transparent to other code. During this process, the structs have lost their [repr(C]) property. It was never used, as the structs were not directly involved in C FFI. It has been a relic of the past from earlier iterations. Finally, the parsing function has been changed from parse_event to parse_event_rev0, with the addition of a parse_event_rev1. parse_events now takes the event parsing function as an additional parameter, and parse_file correctly choses the implementation based on the revision number.
2018-09-06make parser more lenientDaniel Schadt
Somehow, new files (after ~2018-08-10) won't parse without this.
2018-09-06add new enum valuesDaniel Schadt
2018-08-02add more wing 1 mechanicsDaniel Schadt
2018-07-09add rudimentary support for new state changesDaniel Schadt
The arcdps update has introduced new state change events, namely BuffInitial, Position and Velocity. It is now possible to track the movements of all players. Unfortunately, this meant that evtclib could not ready any logs created by the new arc version, as the new CbtStateChange was not read correctly. evtclib just returned "Invalid data". This fix adds the new enum variants to the CbtStateChange enum, making it again possible to read files. However, there are no high-level events for those yet, so the conversion will fail.
2018-07-07more readabilityDaniel Schadt
2018-07-07don't count mechanics which are evaded or blockedDaniel Schadt
2018-07-07base for mechanic trackingDaniel Schadt
2018-06-15fix(?) boon trackingDaniel Schadt
If we throw away all empty queues before we register that they are empty, we end up never removing some boons, getting crazy uptimes. The current state is still not perfect, but it's much closer to what we expect.
2018-06-14some main.rs updates for debugging stuffDaniel Schadt
2018-06-14deal with multiple boss agentsDaniel Schadt
Exemplary done with Xera.
2018-06-14use log start time as fallback for combat enterDaniel Schadt
Does only the PoV player have the enter combat event...?
2018-06-14add support for reading zipped logsDaniel Schadt
2018-06-14derive getters for AgentDaniel Schadt
2018-06-14fix type errorDaniel Schadt
2018-06-14rework boon trackingDaniel Schadt
2018-06-13fix Default impl for RecordFuncDaniel Schadt
Deriving it puts the Default trait bound on X, T and D, even though this is not necessary.
2018-06-13clean up a bitDaniel Schadt
2018-06-13rework damage trackerDaniel Schadt
2018-06-10add a hint on multiplexerDaniel Schadt
2018-06-10use multiplexer for boon trackerDaniel Schadt
2018-06-10first iteration of multiplexerDaniel Schadt
2018-06-10basic structure for mechanic trackerDaniel Schadt
2018-05-31make entry immutableDaniel Schadt
2018-05-31cargo fmtDaniel Schadt
2018-05-30output boon uptimes for debuggingDaniel Schadt
2018-05-30boon tracker: only track known boonsDaniel Schadt
We need to know the stack size and the boon type anyway, so there's no point in guessing them for unknown boons. We just restrict ourselves to the known ones.
2018-05-30add all standard boons and conditionsDaniel Schadt
still missing: * spirits * superspeed * any other non-boon thing (Empower Allies, banners, spotter, ...) * ...
2018-05-30add link to wiki for effect stackingDaniel Schadt
2018-05-30update rust - use never_type featureDaniel Schadt
2018-05-01add boon data for some boons (exemplary)Daniel Schadt
2018-04-27speed up boon calculationDaniel Schadt
This prevents calling BoonQueue::simulate a lot of times. Still needs more profiling to make it even faster.
2018-04-27add boon tracking basicsDaniel Schadt
2018-04-25introduce trackersDaniel Schadt
Trackers help us to keep the code somewhat cleaner, especially in the statistics::calculate function.
2018-04-25add a note on how boon queues workDaniel Schadt
2018-04-25add basic boon queue supportDaniel Schadt
This is already pretty good to calculate the overall boon uptime/average stacks.
2018-04-24basic work on statistics calculationDaniel Schadt
2018-04-23more documentationDaniel Schadt
2018-04-23add a bit more documentationDaniel Schadt
2018-04-23add some utility methods to AgentDaniel Schadt
2018-04-23run rustfmtDaniel Schadt
2018-04-23apply clippy's suggestionsDaniel Schadt
2018-04-23add basic translation to more readable eventsDaniel Schadt
This basically implements the "event logic" as described in the README, though it produces easier-to-digest events. The test binary show 0 failed events on an example log, but of course, not all mechanics are used there, and the parsing logic may very well contain some errors.