1use super::SubroutineId;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7pub enum EventTeam {
8 All,
9 Team1,
10 Team2,
11}
12
13#[derive(Debug, Clone, PartialEq, Eq)]
15pub enum EventTarget {
16 All,
17 Slot(u8),
18 Hero(String),
19}
20
21#[derive(Debug, Clone, Copy, PartialEq, Eq)]
23pub enum PlayerEventKind {
24 DealtDamage,
25 DealtFinalBlow,
26 DealtHealing,
27 DealtKnockback,
28 Died,
29 EarnedElimination,
30 Joined,
31 Left,
32 ReceivedHealing,
33 ReceivedKnockback,
34 TookDamage,
35}
36
37impl PlayerEventKind {
38 pub fn catalog_id(self) -> &'static str {
40 match self {
41 PlayerEventKind::DealtDamage => "playerDealtDamage",
42 PlayerEventKind::DealtFinalBlow => "playerDealtFinalBlow",
43 PlayerEventKind::DealtHealing => "playerDealtHealing",
44 PlayerEventKind::DealtKnockback => "playerDealtKnockback",
45 PlayerEventKind::Died => "playerDied",
46 PlayerEventKind::EarnedElimination => "playerEarnedElimination",
47 PlayerEventKind::Joined => "playerJoined",
48 PlayerEventKind::Left => "playerLeft",
49 PlayerEventKind::ReceivedHealing => "playerReceivedHealing",
50 PlayerEventKind::ReceivedKnockback => "playerReceivedKnockback",
51 PlayerEventKind::TookDamage => "playerTookDamage",
52 }
53 }
54}
55
56#[derive(Debug, Clone)]
58pub enum Event {
59 Global,
61 EachPlayer,
63 EachPlayerWithFilters {
65 team: EventTeam,
66 target: EventTarget,
67 },
68 Player {
70 kind: PlayerEventKind,
71 team: EventTeam,
72 target: EventTarget,
73 },
74 Subroutine(SubroutineId),
76}