use super::SubroutineId;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum EventTeam {
All,
Team1,
Team2,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum EventTarget {
All,
Slot(u8),
Hero(String),
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PlayerEventKind {
DealtDamage,
DealtFinalBlow,
DealtHealing,
DealtKnockback,
Died,
EarnedElimination,
Joined,
Left,
ReceivedHealing,
ReceivedKnockback,
TookDamage,
}
impl PlayerEventKind {
pub fn catalog_id(self) -> &'static str {
match self {
PlayerEventKind::DealtDamage => "playerDealtDamage",
PlayerEventKind::DealtFinalBlow => "playerDealtFinalBlow",
PlayerEventKind::DealtHealing => "playerDealtHealing",
PlayerEventKind::DealtKnockback => "playerDealtKnockback",
PlayerEventKind::Died => "playerDied",
PlayerEventKind::EarnedElimination => "playerEarnedElimination",
PlayerEventKind::Joined => "playerJoined",
PlayerEventKind::Left => "playerLeft",
PlayerEventKind::ReceivedHealing => "playerReceivedHealing",
PlayerEventKind::ReceivedKnockback => "playerReceivedKnockback",
PlayerEventKind::TookDamage => "playerTookDamage",
}
}
}
#[derive(Debug, Clone)]
pub enum Event {
Global,
EachPlayer,
EachPlayerWithFilters {
team: EventTeam,
target: EventTarget,
},
Player {
kind: PlayerEventKind,
team: EventTeam,
target: EventTarget,
},
Subroutine(SubroutineId),
}