1use crate::Attribute;
2use strum_macros::{Display, EnumString, EnumIter, EnumCount};
3use num_enum::{TryFromPrimitive, IntoPrimitive};
4use serde_repr::{Serialize_repr, Deserialize_repr};
5
6#[derive(
8 Serialize_repr,
9 Deserialize_repr,
10 Debug,
11 Hash,
12 Eq,
13 PartialEq,
14 Ord,
15 PartialOrd,
16 Display,
17 EnumString,
18 EnumIter,
19 EnumCount,
20 TryFromPrimitive,
21 IntoPrimitive,
22 Clone,
23 Copy,
24)]
25#[repr(u32)]
26pub enum Sheen {
27 #[strum(serialize = "Team Shine")]
28 TeamShine = 1,
29 #[strum(serialize = "Deadly Daffodil")]
30 DeadlyDaffodil = 2,
31 #[strum(serialize = "Manndarin")]
32 Manndarin = 3,
33 #[strum(serialize = "Mean Green")]
34 MeanGreen = 4,
35 #[strum(serialize = "Agonizing Emerald")]
36 AgonizingEmerald = 5,
37 #[strum(serialize = "Villainous Violet")]
38 VillainousViolet = 6,
39 #[strum(serialize = "Hot Rod")]
40 HotRod = 7,
41}
42
43impl Attribute for Sheen {
45 const DEFINDEX: u32 = 2014;
46 const NAME: &str = "killstreak idleeffect";
47 const ATTRIBUTE_CLASS: &str = "killstreak_idleeffect";
48 const DESCRIPTION_STRING: Option<&str> = Some("Sheen: %s1");
49 const DESCRIPTION_FORMAT: Option<&str> = Some("value_is_killstreak_idleeffect_index");
50 const EFFECT_TYPE: &str = "positive";
51 const HIDDEN: bool = false;
52 const STORED_AS_INTEGER: bool = false;
53}