mirror of
https://github.com/hypervortex/VH-Bombsquad-Modded-Server-Files
synced 2025-11-07 17:36:08 +00:00
62 lines
2 KiB
Python
62 lines
2 KiB
Python
# Released under the MIT License. See LICENSE for details.
|
|
#
|
|
"""Functionality related to teams sessions."""
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
import _ba
|
|
from ba._multiteamsession import MultiTeamSession
|
|
|
|
if TYPE_CHECKING:
|
|
import ba
|
|
|
|
|
|
class DualTeamSession(MultiTeamSession):
|
|
"""ba.Session type for teams mode games.
|
|
|
|
Category: **Gameplay Classes**
|
|
"""
|
|
|
|
# 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:
|
|
_ba.increment_analytics_count('Teams session start')
|
|
super().__init__()
|
|
|
|
def _switch_to_score_screen(self, results: ba.GameResults) -> None:
|
|
# pylint: disable=cyclic-import
|
|
from bastd.activity.drawscore import DrawScoreScreenActivity
|
|
from bastd.activity.dualteamscore import TeamVictoryScoreScreenActivity
|
|
from bastd.activity.multiteamvictory import (
|
|
TeamSeriesVictoryScoreScreenActivity,
|
|
)
|
|
|
|
winnergroups = results.winnergroups
|
|
|
|
# If everyone has the same score, call it a draw.
|
|
if len(winnergroups) < 2:
|
|
self.setactivity(_ba.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(
|
|
_ba.newactivity(
|
|
TeamSeriesVictoryScoreScreenActivity, {'winner': winner}
|
|
)
|
|
)
|
|
else:
|
|
self.setactivity(
|
|
_ba.newactivity(
|
|
TeamVictoryScoreScreenActivity, {'winner': winner}
|
|
)
|
|
)
|