From 843d064bd2c9005e46493161f8a1f5d448b545e2 Mon Sep 17 00:00:00 2001 From: Roman Trapeznikov Date: Tue, 21 Sep 2021 17:53:58 +0300 Subject: [PATCH] fix --- assets/src/ba_data/python/ba/_coopsession.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/assets/src/ba_data/python/ba/_coopsession.py b/assets/src/ba_data/python/ba/_coopsession.py index 7d5b0ff4..c6674c61 100644 --- a/assets/src/ba_data/python/ba/_coopsession.py +++ b/assets/src/ba_data/python/ba/_coopsession.py @@ -156,20 +156,17 @@ class CoopSession(Session): from ba._general import WeakCall super().on_player_leave(sessionplayer) - if _ba.app.server is not None: - # If we're in server mode, end game and show results. - _ba.timer(2.0, WeakCall(self._end_game_if_empty)) - else: - # Otherwise, if all our players leave - # we wanna quit out of the session. - _ba.timer(2.0, WeakCall(self._end_session_if_empty)) + _ba.timer(2.0, WeakCall(self._check_end_game)) + + def _check_end_game(self) -> None: + if not _ba.app.server: + self._end_session_if_empty() - def _end_game_if_empty(self) -> None: activity = self.getactivity() if activity is None: return # Probably everything is already broken, why do something? - if activity.players: + if [player for player in activity.players if player.is_alive()]: return with _ba.Context(activity):