Skip to main content

wowlab_engine_gamedata/game_data/
environment_access.rs

1//! Equipment and encounter-environment access to resolved game data.
2
3use wowlab_types::data::WeaponStats;
4
5use super::{ConsumableSpells, ResolvedGameData};
6
7impl ResolvedGameData {
8    #[must_use]
9    pub fn armor_constant(&self) -> f64 {
10        wowlab_types::bench_metrics::record_game_data_hot_read();
11
12        self.inner.environment.armor_constant
13    }
14
15    #[must_use]
16    pub fn creature_armor(&self) -> f64 {
17        wowlab_types::bench_metrics::record_game_data_hot_read();
18
19        self.inner.environment.creature_armor
20    }
21
22    #[must_use]
23    pub fn target_armor_mult(&self) -> f64 {
24        wowlab_types::bench_metrics::record_game_data_hot_read();
25
26        self.inner.environment.target_armor_mult
27    }
28
29    #[must_use]
30    pub fn armor_constant_mod(&self) -> f64 {
31        wowlab_types::bench_metrics::record_game_data_hot_read();
32
33        self.inner.environment.armor_constant_mod
34    }
35
36    #[must_use]
37    pub fn armor_k(&self) -> f64 {
38        wowlab_types::bench_metrics::record_game_data_hot_read();
39
40        self.inner.environment.armor_constant * self.inner.environment.armor_constant_mod
41    }
42
43    #[must_use]
44    pub fn main_hand(&self) -> WeaponStats {
45        wowlab_types::bench_metrics::record_game_data_hot_read();
46
47        self.inner.environment.main_hand
48    }
49
50    #[must_use]
51    pub fn off_hand(&self) -> Option<WeaponStats> {
52        wowlab_types::bench_metrics::record_game_data_hot_read();
53
54        self.inner.environment.off_hand
55    }
56
57    /// Consumables selected for this run (potion/flask/food/augment buff spells).
58    #[must_use]
59    pub fn consumable_spells(&self) -> &ConsumableSpells {
60        wowlab_types::bench_metrics::record_game_data_hot_read();
61
62        &self.inner.environment.consumables
63    }
64}