Skip to main content

wowlab_engine_combat/state/
defs.rs

1use wowlab_engine_domain::dbc::{SpellAttributeKind, SpellAuraInterruptFlags, spell_attribute_is};
2use wowlab_engine_gamedata::ResolvedGameData;
3use wowlab_types::{
4    constants::DEFAULT_GCD_MS,
5    game::CdrEffect,
6    sim::{ActorId, AuraOn, EnemyIdx, SimTime, SpatialTransform, SpellIdx},
7};
8
9use super::{
10    BuffEffect, CombatState, DamageEffectRef, LocalAuraIdx, LocalRppmIdx, LocalSpellIdx,
11    MAX_AURA_BUFF_EFFECTS, MAX_CDR_EFFECTS, RuntimeDamageDef,
12};
13use crate::context::{HookCtx, HookView};
14
15pub(crate) mod aura;
16pub(crate) mod drivers;
17pub(crate) mod guardians;
18mod pending;
19pub(crate) mod periodic;
20pub(crate) mod pets;
21pub(crate) mod procs;
22pub(crate) mod spell;
23
24pub(crate) use aura::{
25    AuraData, AuraTickBehavior, CritChargeReduction, DynamicTickAction, SpellGroup,
26};
27pub(crate) use drivers::{
28    DriverSpellModifier, PassiveDriverEffect, PeriodicDriver, ResourceThresholdTrigger,
29    WeaponEnchantBinding, WeaponImbueBinding,
30};
31pub(crate) use guardians::{
32    GuardianAbility, GuardianAbilityState, GuardianEvent, GuardianHandle, GuardianInstance,
33    GuardianSpec,
34};
35pub(crate) use pending::{
36    PendingEffectProgram, PendingHookTimer, PendingSpellImpact, PendingTimerAction,
37};
38pub(crate) use periodic::{PeriodicData, PeriodicKind};
39pub(crate) use pets::{
40    PetAbilityCondition, PetActionBar, PetActionState, PetOwnerCoefficients, PetStatSnapshot,
41};
42pub(crate) use procs::{
43    AccumulatingImpactProc, AuraApplicationEvent, ImpactActorFilter, ImpactChanceScale,
44    ImpactEffectProc, ImpactEvent, ImpactProc, ImpactProcFn, ImpactSource, LandedImpactEvent,
45    LandedImpactProc, ProcDriver, ProcEventKind, ProcHitMask, ProcPhaseMask, ProcProvenance,
46    ProcSourceKind, ProcTriggerSide, ResourceGainEvent, ResourceGainProc, ResourceGainProcAttempts,
47    SwingEvent, SwingHand, SwingHookFn, SwingMissChanceHookFn, SwingReplacement,
48    SwingReplacementHookFn,
49};
50pub(crate) use spell::{
51    AutoAttackData, CastHookFn, EmpowerReleaseAdjustment, EmpowerReleaseHookFn,
52    MAX_AURA_APPLICATION_EXCLUSIONS, ResourcePool, SpellAvailability, SpellBehavior, SpellChannel,
53    SpellChannelBehavior, SpellChannelCompletion, SpellChannelTiming, SpellCooldown, SpellCost,
54    SpellDamagePolicy, SpellData, SpellEffectData, SpellEffectRange, SpellEquipmentRequirements,
55    SpellFormRequirements, SpellOverride, SpellRequirements, SpellTargeting,
56    TriggerProgramPredicateFn,
57};