1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
//! Bindings for the ArcDPS EVTC API.
//!
//! Includes both types for Arc's realtime API used by plugins as well as Arc's log API consumed by parsers.
//!
//! ```no_run
//! use evtc::Event;
//!
//! fn total_damage_dealt(agent: u64, target: u64, events: &[Event]) -> i32 {
//! events
//! .iter()
//! .filter_map(|event| event.try_to_strike())
//! .filter(|strike_event| {
//! strike_event.strike.dealt_damage()
//! && strike_event.src.id == agent
//! && strike_event.dst.id == target
//! })
//! .map(|strike_event| strike_event.total_damage - strike_event.shield_damage as i32)
//! .sum()
//! }
//! ```
pub mod agent;
pub mod buff;
pub mod effect;
pub mod event;
pub mod extract;
mod game;
pub mod guid;
mod log;
pub mod marker;
pub mod player;
pub mod position;
mod ruleset;
pub mod skill;
mod state_change;
pub mod strike;
pub mod weapon;
#[cfg(feature = "serde")]
mod serde_hex;
pub use crate::{
agent::{Affinity, AgentId, AgentKind},
buff::{Attribute, BuffCategory, BuffCycle, BuffRemove},
event::{Event, EventCategory, EventKind},
extract::TryExtract,
game::*,
player::{Profession, Specialization},
position::Position,
ruleset::*,
skill::{Activation, CustomSkill},
state_change::*,
strike::Strike,
};