diff --git a/CHANGELOG.md b/CHANGELOG.md index 5eda29cc..bb8ad1e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +- Declare opponent team as the winner if a player with their final turn leaves an elimination game. + ### 1.6.0 (20357) - Revamped netcode significantly. We still don't have client-prediction, but things should (hopefully) feel much lower latency now. - Added network debug graphs accessible by hitting F8. diff --git a/assets/src/ba_data/python/bastd/game/elimination.py b/assets/src/ba_data/python/bastd/game/elimination.py index 061ff0b4..aac7d823 100644 --- a/assets/src/ba_data/python/bastd/game/elimination.py +++ b/assets/src/ba_data/python/bastd/game/elimination.py @@ -483,6 +483,13 @@ class EliminationGame(ba.TeamGameActivity[Player, Team]): # list then. ba.timer(0, self._update_icons) + # If the player to leave was the last in spawn order and had + # their final turn currently in-progress, mark the survival time + # for their team. + if self._get_total_team_lives(player.team) == 0: + assert self._start_time is not None + player.team.survival_seconds = int(ba.time() - self._start_time) + def _get_total_team_lives(self, team: Team) -> int: return sum(player.lives for player in team.players)