Merge pull request #273 from ritiek/elimination-games-fix

Set winner when player leaves elimination mid-game
This commit is contained in:
Eric Froemling 2021-05-14 12:02:51 -07:00 committed by GitHub
commit 9ffee1c52d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 0 deletions

View File

@ -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.

View File

@ -23,3 +23,6 @@
### Daniil Rakhov
- Plugin api additions
### Ritiek Malhotra
- Just <3 BombSquad

View File

@ -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)