Skip to main content

wowlab_types/types/sim/
snapshot.rs

1use serde::{Deserialize, Serialize};
2
3bitflags::bitflags! {
4    #[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
5    #[cfg_attr(feature = "wasm", derive(tsify::Tsify))]
6    #[cfg_attr(feature = "wasm", tsify(into_wasm_abi, from_wasm_abi))]
7    pub struct SnapshotFlags: u32 {
8        const ATTACK_POWER = 1 << 0;
9        const SPELL_POWER = 1 << 1;
10        const CRIT = 1 << 2;
11        const HASTE = 1 << 3;
12        const VERSATILITY = 1 << 4;
13        const MASTERY = 1 << 5;
14        const DA_MULTIPLIER = 1 << 6;
15        const TA_MULTIPLIER = 1 << 7;
16        const PERSISTENT_MULT = 1 << 8;
17        const PLAYER_MULT = 1 << 9;
18
19        const DOT_PHYSICAL = Self::ATTACK_POWER.bits() | Self::PERSISTENT_MULT.bits();
20        const DOT_MAGIC = Self::SPELL_POWER.bits() | Self::PERSISTENT_MULT.bits();
21        const ALL = Self::ATTACK_POWER.bits()
22            | Self::SPELL_POWER.bits()
23            | Self::CRIT.bits()
24            | Self::HASTE.bits()
25            | Self::VERSATILITY.bits()
26            | Self::MASTERY.bits()
27            | Self::DA_MULTIPLIER.bits()
28            | Self::TA_MULTIPLIER.bits()
29            | Self::PERSISTENT_MULT.bits()
30            | Self::PLAYER_MULT.bits();
31    }
32}