1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
2pub enum EventTeam {
3 All,
4 Team1,
5 Team2,
6}
7
8#[derive(Debug, Clone, PartialEq, Eq)]
9pub enum EventTarget {
10 All,
11 Slot(u8),
12 Hero(String),
13}
14
15#[non_exhaustive]
20#[derive(Debug, Clone, Copy, PartialEq, Eq)]
21pub enum PlayerEventKind {
22 DealtDamage,
23 DealtFinalBlow,
24 DealtHealing,
25 DealtKnockback,
26 Died,
27 EarnedElimination,
28 Joined,
29 Left,
30 ReceivedHealing,
31 ReceivedKnockback,
32 TookDamage,
33}
34
35impl PlayerEventKind {
36 pub(crate) fn from_catalog_id(id: &str) -> Option<Self> {
38 Some(match id {
39 "playerDealtDamage" => Self::DealtDamage,
40 "playerDealtFinalBlow" => Self::DealtFinalBlow,
41 "playerDealtHealing" => Self::DealtHealing,
42 "playerDealtKnockback" => Self::DealtKnockback,
43 "playerDied" => Self::Died,
44 "playerEarnedElimination" => Self::EarnedElimination,
45 "playerJoined" => Self::Joined,
46 "playerLeft" => Self::Left,
47 "playerReceivedHealing" => Self::ReceivedHealing,
48 "playerReceivedKnockback" => Self::ReceivedKnockback,
49 "playerTookDamage" => Self::TookDamage,
50 _ => return None,
51 })
52 }
53
54 pub(crate) fn catalog_id(self) -> &'static str {
55 match self {
56 Self::DealtDamage => "playerDealtDamage",
57 Self::DealtFinalBlow => "playerDealtFinalBlow",
58 Self::DealtHealing => "playerDealtHealing",
59 Self::DealtKnockback => "playerDealtKnockback",
60 Self::Died => "playerDied",
61 Self::EarnedElimination => "playerEarnedElimination",
62 Self::Joined => "playerJoined",
63 Self::Left => "playerLeft",
64 Self::ReceivedHealing => "playerReceivedHealing",
65 Self::ReceivedKnockback => "playerReceivedKnockback",
66 Self::TookDamage => "playerTookDamage",
67 }
68 }
69}
70
71#[non_exhaustive]
76#[derive(Debug, Clone, Copy, PartialEq, Eq)]
77pub enum ModifyOp {
78 Add,
79 Subtract,
80 Multiply,
81 Divide,
82 Modulo,
83 Min,
84 Max,
85 RaiseToPower,
86 AppendToArray,
87 RemoveFromArrayByValue,
88 RemoveFromArrayByIndex,
89}
90
91impl ModifyOp {
92 pub(crate) fn from_catalog_id(id: &str) -> Option<Self> {
94 Some(match id {
95 "add" => Self::Add,
96 "subtract" => Self::Subtract,
97 "multiply" => Self::Multiply,
98 "divide" => Self::Divide,
99 "modulo" => Self::Modulo,
100 "min" => Self::Min,
101 "max" => Self::Max,
102 "raiseToPower" => Self::RaiseToPower,
103 "appendToArray" => Self::AppendToArray,
104 "removeFromArrayByValue" => Self::RemoveFromArrayByValue,
105 "removeFromArrayByIndex" => Self::RemoveFromArrayByIndex,
106 _ => return None,
107 })
108 }
109
110 pub(crate) fn as_str(self) -> &'static str {
111 match self {
112 Self::Add => "Add",
113 Self::Subtract => "Subtract",
114 Self::Multiply => "Multiply",
115 Self::Divide => "Divide",
116 Self::Modulo => "Modulo",
117 Self::Min => "Min",
118 Self::Max => "Max",
119 Self::RaiseToPower => "RaiseToPower",
120 Self::AppendToArray => "AppendToArray",
121 Self::RemoveFromArrayByValue => "RemoveFromArrayByValue",
122 Self::RemoveFromArrayByIndex => "RemoveFromArrayByIndex",
123 }
124 }
125
126 pub(crate) fn catalog_id(self) -> &'static str {
127 match self {
128 Self::Add => "add",
129 Self::Subtract => "subtract",
130 Self::Multiply => "multiply",
131 Self::Divide => "divide",
132 Self::Modulo => "modulo",
133 Self::Min => "min",
134 Self::Max => "max",
135 Self::RaiseToPower => "raiseToPower",
136 Self::AppendToArray => "appendToArray",
137 Self::RemoveFromArrayByValue => "removeFromArrayByValue",
138 Self::RemoveFromArrayByIndex => "removeFromArrayByIndex",
139 }
140 }
141}