wowlab_engine_combat/state/program/
config.rs1use wowlab_engine_gamedata::ResolvedGameData;
2use wowlab_engine_ports::{ResolvedEncounter, SpecConfig};
3use wowlab_types::sim::SpellIdx;
4
5use crate::{state::BaseStats, systems::MasteryFn};
6
7#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
9#[non_exhaustive]
10pub enum AttackPosition {
11 Front,
12 #[default]
13 Behind,
14}
15
16#[derive(Debug)]
18pub(crate) struct ProgramConfig {
19 pub base_stats: BaseStats,
20 pub min_primary_cost: f64,
21 pub haste_regen: bool,
22 pub game_data: ResolvedGameData,
23 pub encounter: ResolvedEncounter,
24 pub mastery_hook: MasteryFn,
25 pub mastery_crit_damage: MasteryFn,
26 pub mastery_spell: SpellIdx,
27 pub(crate) spec_config: Box<dyn SpecConfig>,
28 pub bugs: wowlab_engine_ports::BugToggles,
29 pub cast_latency: wowlab_engine_ports::CastLatency,
30 pub raid_events: Vec<wowlab_engine_ports::RaidEventConfig>,
31 pub external_buffs: Vec<wowlab_engine_ports::ExternalBuffConfig>,
32}