Skip to main content

wowlab_engine_application/game_data/spells/
context.rs

1use std::collections::VecDeque;
2
3use wowlab_engine_domain::dbc::PowerModifiers;
4use wowlab_engine_gamedata::ResolvedGameDataBuilder;
5use wowlab_engine_ports::{DynDataResolver, TalentSelection};
6use wowlab_types::sim::FastSet;
7
8pub(crate) struct SpellResolutionContext<'a, 'resolver> {
9    pub builder: &'a mut ResolvedGameDataBuilder,
10    pub resolver: &'a DynDataResolver<'resolver>,
11    pub talents: &'a [TalentSelection],
12    pub passives: &'a [wowlab_engine_domain::dbc::RankedPassive],
13    pub crit_chance_scaled: &'a [wowlab_engine_domain::dbc::CritChanceScaledCritDamage],
14    pub effect_overrides: &'a [((u32, u8), f64)],
15    pub power_modifiers: &'a PowerModifiers,
16    pub active_aura_spell_ids: &'a FastSet<i32>,
17    pub primary_resource_type: i32,
18    pub secondary_resource_type: Option<i32>,
19    pub required_spell_ids: &'a FastSet<u32>,
20    pub pending: &'a mut VecDeque<u32>,
21    pub resolved: &'a mut FastSet<u32>,
22}