Skip to main content

wowlab_engine_ports/
combat_stats.rs

1/// Primary and secondary combat stats; secondary/tertiary stats are percent points (25.0 == 25%), not fractions.
2#[derive(Clone, Debug, serde::Serialize)]
3pub struct CombatStats {
4    pub attack_power: f64,
5    pub spell_power: f64,
6    pub crit_chance: f64,
7    pub haste: f64,
8    pub mastery: f64,
9    pub versatility: f64,
10    pub leech: f64,
11    pub crit_damage_bonus: f64,
12    pub armor: f64,
13    pub stamina: f64,
14    pub intellect: f64,
15    pub agility: f64,
16    pub strength: f64,
17    /// Positive non-create strength included in `strength`.
18    pub positive_strength_bonus: f64,
19    /// Positive non-create agility included in `agility`.
20    pub positive_agility_bonus: f64,
21    /// Positive non-create stamina included in `stamina`.
22    pub positive_stamina_bonus: f64,
23    /// Positive non-create intellect included in `intellect`.
24    pub positive_intellect_bonus: f64,
25    pub primary_stat_mult: f64,
26}
27
28impl CombatStats {
29    #[must_use]
30    pub fn new() -> Self {
31        Self::default()
32    }
33}
34
35impl Default for CombatStats {
36    fn default() -> Self {
37        Self {
38            attack_power: 0.0,
39            spell_power: 0.0,
40            crit_chance: 0.0,
41            haste: 0.0,
42            mastery: 0.0,
43            versatility: 0.0,
44            leech: 0.0,
45            crit_damage_bonus: 0.0,
46            armor: 0.0,
47            stamina: 0.0,
48            intellect: 0.0,
49            agility: 0.0,
50            strength: 0.0,
51            positive_strength_bonus: 0.0,
52            positive_agility_bonus: 0.0,
53            positive_stamina_bonus: 0.0,
54            positive_intellect_bonus: 0.0,
55            primary_stat_mult: 1.0,
56        }
57    }
58}