wowlab_engine_combat/systems/damage_pipeline/
mod.rs1mod absorbs;
4pub(crate) mod api;
5mod dispatch;
6mod incoming;
7mod leech;
8mod setup;
9mod snapshot;
10mod weapon;
11
12#[cfg(test)]
13use wowlab_engine_domain::rotation::DenseBuffer;
14#[cfg(test)]
15use wowlab_engine_gamedata::ResolvedGameData;
16#[cfg(test)]
17use wowlab_engine_telemetry::{DamageEvent, DamageEventFlags, TelemetrySink};
18#[cfg(test)]
19use wowlab_types::sim::{ActorId, EnemyIdx, SpellIdx};
20
21#[cfg(test)]
22use crate::{context::CombatCtx, state::CombatState};
23
24#[rustfmt::skip]
25pub(super) use absorbs::resolve_outgoing_absorbs;
26#[rustfmt::skip]
27pub(in crate::systems) use api::deal_damage_ap_with_weapon;
28#[cfg(test)]
29#[rustfmt::skip]
30pub(super) use api::resolved_damage_geometry_effect;
31#[rustfmt::skip]
32pub(crate) use api::{
33 DamageFlags, DamagePayload, ProfiledDamageDef, damage_flags_from_data, deal_damage_ap,
34 deal_damage_ap_at, deal_damage_base, deal_damage_def, deal_damage_sp, deal_damage_sp_at,
35 deal_effect_damage_ap, deal_effect_damage_ap_with_geometry, deal_effect_damage_base,
36 deal_effect_damage_sp, deal_effect_damage_sp_with_geometry, deal_profiled_damage_def,
37 deal_profiled_damage_def_at, deal_residual_damage, deal_resolved_damage,
38 resolve_spell_impact_flags,
39};
40#[rustfmt::skip]
41pub(super) use api::{
42 DamageRequest, emit_damage_telemetry, finalize_damage, finalize_damage_with,
43 reported_damage_spell_id,
44};
45#[rustfmt::skip]
46pub(crate) use incoming::{IncomingDamage, deal_incoming_damage};
47#[rustfmt::skip]
48pub(crate) use setup::{
49 DamageSnapshot, dynamic_base_powers, dynamic_stamina, read_player_stats_for_damage, school_of,
50 spell_modifiers::{SpellModifierQuery, spell_scoped_mods_for},
51};
52#[rustfmt::skip]
53pub(crate) use snapshot::{SnapshotPower, deal_damage_with_snapshot, read_aura_snapshot};
54#[rustfmt::skip]
55pub(super) use weapon::WeaponDamageInput;
56#[rustfmt::skip]
57pub(crate) use weapon::{current_spell_power, typed_attack_power, typed_attack_power_with};
58
59#[cfg(test)]
60#[path = "tests.rs"]
61mod tests;