wowlab_engine_combat/builder/combat_builder/
build.rs1use wowlab_engine_domain::{
2 dbc::{AuraSubtypeKind, ResolvedGameDataSemanticExt as _},
3 encounter::{EnemyActorDefinition, EnemyActorDefinitionInput, EnemyState, HealthModel},
4 pool::PoolIndex,
5};
6use wowlab_engine_ports::{EngineError, HeroTalentTreeDesc, ResolvedEncounter};
7use wowlab_types::{
8 combat::ResourceType,
9 data::CooldownCategoryId,
10 sim::{AuraOn, EnemyHealthInput, IntMap, SpellIdx},
11};
12
13use super::{CombatSystemBuilder, ImpactEffectProcDefinition, resolve_resource_type};
14use crate::{
15 builder::{
16 buffer_init::{expand_spell_learn_chains, expand_spell_override_chains},
17 compile::{CooldownBypass, CostBypass, SpellGate, SpellOverride},
18 draft::CombatSystemDraft,
19 lower::{RuntimeStateParts, lower_builder_state},
20 },
21 state::{BaseStats, CombatRuntime, ImpactActorFilter, ImpactSource, ResourceThresholdTrigger},
22};
23
24#[path = "trigger_program.rs"]
25mod trigger_program;
26use crate::builder::AuraDefinitionDraft;
27
28mod assemble;
29mod dbc_procs;
30mod finish;
31mod overrides;
32
33use dbc_procs::ImpactProcRegistration;
34#[cfg(test)]
35use finish::apply_hero_tree_spell_gating;
36use overrides::ActionOverrideRegistration;
37
38struct TriggerProgramLowering<'a> {
39 definition: &'a CombatSystemBuilder,
40}
41
42struct TriggerProgramRegistration<'a> {
43 definition: &'a mut CombatSystemBuilder,
44}
45
46#[cfg(test)]
47use dbc_procs::dbc_proc_mask_is_complete;
48
49#[cfg(test)]
50#[path = "build/cooldown_tests.rs"]
51mod cooldown_tests;
52
53#[cfg(test)]
54#[path = "build/proc_mask_tests.rs"]
55mod proc_mask_tests;
56
57#[cfg(test)]
58#[path = "build/tests.rs"]
59mod tests;