more edge case handling

This commit is contained in:
Robin Appelman 2023-03-17 21:11:08 +01:00
commit 2dcd691f66
9 changed files with 37 additions and 24 deletions

View file

@ -95,9 +95,9 @@ impl EventHandler for ClassStatsHandler {
damage: Some(damage),
target,
..
}) if self.active => {
}) if self.active && damage > &0 && damage < &99999 => {
if let Some(target_class) = self.get_class(target) {
subject_data.damage[target_class] += damage.get() as u16;
subject_data.damage[target_class] += *damage as u16;
}
}
_ => {}

View file

@ -19,7 +19,11 @@ impl PlayerSpecificData for HealSpread {
fn handle_event(&mut self, _meta: &EventMeta, _subject: SubjectId, event: &GameEvent) {
if let GameEvent::Healed(heal_event) = event {
if let Ok(target_subject) = SubjectId::try_from(&heal_event.target) {
if let Some(Ok(target_subject)) = heal_event
.target
.as_ref()
.map(|target| SubjectId::try_from(target))
{
if let Some(target_steam_id) = target_subject.steam_id() {
let healed = self.0.entry(SteamId3(target_steam_id)).or_default();
*healed += heal_event.amount