Record goals, own_goals, friendly_kills and friendly_deaths

This commit is contained in:
Sofia 2026-08-02 21:54:08 +03:00
parent 7db901c749
commit 3ccc17ac3b

View File

@ -738,6 +738,13 @@ impl Game {
.insert(*team, self.goals.get(&team).copied().unwrap_or(0) + 1);
}
if let Some(scorer_player) = self.find_player_mut(scorer) {
scorer_player.stats.goals += 1;
if teams.contains(&scorer_player.data.team) {
scorer_player.stats.own_goals += 1;
}
}
if let Some(self_player) = self.get_self()
&& let Some(mut local_player) = self_player.get_local_player()
{
@ -1090,6 +1097,7 @@ impl Game {
source_player.stats.kills += 1;
source_player.killing_spree += 1;
source_player.killing_spree_cd = 10.;
source_player.killing_spree
} else {
0
@ -1100,6 +1108,27 @@ impl Game {
player.killing_spree_cd = 0.;
player.stats.deaths += 1;
}
// Record friendly-fire kills
if let Some(target) = self.find_player(player_id).cloned()
&& let DamageSource::Player(source_id) = source
&& let Some(source_player) = self.find_player_mut(source_id)
{
if target.data.team == source_player.data.team {
source_player.stats.friendly_kills += 1;
}
}
// Record friendly-fire deaths
if let DamageSource::Player(source_id) = source
&& let Some(source_player) = self.find_player(source_id).cloned()
&& let Some(target) = self.find_player_mut(player_id)
{
if target.data.team == source_player.data.team {
target.stats.friendly_deaths += 1;
}
}
self.run_deferred(move |s| {
s.signals().on_player_killed().emit(player_id);