Source code for bascenev1._dualteamsession

# Released under the MIT License. See LICENSE for details.
#
"""Functionality related to teams sessions."""
from __future__ import annotations

from typing import TYPE_CHECKING, override

import babase

import _bascenev1
from bascenev1._multiteamsession import MultiTeamSession

if TYPE_CHECKING:
    import bascenev1


[docs] class DualTeamSession(MultiTeamSession): """bascenev1.Session type for teams mode games.""" # Base class overrides: use_teams = True use_team_colors = True _playlist_selection_var = 'Team Tournament Playlist Selection' _playlist_randomize_var = 'Team Tournament Playlist Randomize' _playlists_var = 'Team Tournament Playlists' def __init__(self) -> None: babase.increment_analytics_count('Teams session start') super().__init__() @override def _switch_to_score_screen(self, results: bascenev1.GameResults) -> None: # pylint: disable=cyclic-import from bascenev1lib.activity.multiteamvictory import ( TeamSeriesVictoryScoreScreenActivity, ) from bascenev1lib.activity.dualteamscore import ( TeamVictoryScoreScreenActivity, ) from bascenev1lib.activity.drawscore import DrawScoreScreenActivity winnergroups = results.winnergroups # If everyone has the same score, call it a draw. if len(winnergroups) < 2: self.setactivity(_bascenev1.newactivity(DrawScoreScreenActivity)) else: winner = winnergroups[0].teams[0] winner.customdata['score'] += 1 # If a team has won, show final victory screen. if winner.customdata['score'] >= (self._series_length - 1) / 2 + 1: self.setactivity( _bascenev1.newactivity( TeamSeriesVictoryScoreScreenActivity, {'winner': winner}, ) ) else: self.setactivity( _bascenev1.newactivity( TeamVictoryScoreScreenActivity, {'winner': winner} ) )
# Docs-generation hack; import some stuff that we likely only forward-declared # in our actual source code so that docs tools can find it. from typing import (Coroutine, Any, Literal, Callable, Generator, Awaitable, Sequence, Self) import asyncio from concurrent.futures import Future from pathlib import Path from enum import Enum