mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-02-05 06:53:18 +08:00
tidying and lint fixes
This commit is contained in:
parent
59717449ae
commit
6ff6f5e6d9
@ -4,12 +4,15 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from typing import override
|
from typing import override, TYPE_CHECKING
|
||||||
|
|
||||||
import bascenev1 as bs
|
import bascenev1 as bs
|
||||||
|
|
||||||
from bascenev1lib.activity.multiteamscore import MultiTeamScoreScreenActivity
|
from bascenev1lib.activity.multiteamscore import MultiTeamScoreScreenActivity
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity):
|
class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity):
|
||||||
"""Final score screen for a team series."""
|
"""Final score screen for a team series."""
|
||||||
@ -24,7 +27,8 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity):
|
|||||||
self._allow_server_transition = True
|
self._allow_server_transition = True
|
||||||
self._tips_text = None
|
self._tips_text = None
|
||||||
self._default_show_tips = False
|
self._default_show_tips = False
|
||||||
self._topscored_player: list[object] | None = None
|
self._ffa_top_player_info: list[Any] | None = None
|
||||||
|
self._ffa_top_player_rec: bs.PlayerRecord | None = None
|
||||||
|
|
||||||
@override
|
@override
|
||||||
def on_begin(self) -> None:
|
def on_begin(self) -> None:
|
||||||
@ -72,9 +76,15 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity):
|
|||||||
)
|
)
|
||||||
player_entries.sort(reverse=True, key=lambda x: x[0])
|
player_entries.sort(reverse=True, key=lambda x: x[0])
|
||||||
if len(player_entries) > 0:
|
if len(player_entries) > 0:
|
||||||
self._topscored_player = list(player_entries[0])
|
# Store some info for the top ffa player so we can
|
||||||
self._topscored_player[1] = self._topscored_player[2].getname()
|
# show winner info even if they leave.
|
||||||
self._topscored_player[2] = self._topscored_player[2].get_icon()
|
self._ffa_top_player_info = list(player_entries[0])
|
||||||
|
self._ffa_top_player_info[1] = self._ffa_top_player_info[
|
||||||
|
2
|
||||||
|
].getname()
|
||||||
|
self._ffa_top_player_info[2] = self._ffa_top_player_info[
|
||||||
|
2
|
||||||
|
].get_icon()
|
||||||
else:
|
else:
|
||||||
for _pkey, prec in self.stats.get_records().items():
|
for _pkey, prec in self.stats.get_records().items():
|
||||||
player_entries.append((prec.score, prec.name_full, prec))
|
player_entries.append((prec.score, prec.name_full, prec))
|
||||||
@ -377,40 +387,41 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity):
|
|||||||
v_offs = 0.0
|
v_offs = 0.0
|
||||||
tdelay += len(player_entries) * 8 * t_incr
|
tdelay += len(player_entries) * 8 * t_incr
|
||||||
for _score, name, prec in player_entries:
|
for _score, name, prec in player_entries:
|
||||||
if prec.player.in_game:
|
if not prec.player.in_game:
|
||||||
tdelay -= 4 * t_incr
|
continue
|
||||||
v_offs -= 40
|
tdelay -= 4 * t_incr
|
||||||
Text(
|
v_offs -= 40
|
||||||
(
|
Text(
|
||||||
str(prec.team.customdata['score'])
|
(
|
||||||
if self._is_ffa
|
str(prec.team.customdata['score'])
|
||||||
else str(prec.score)
|
if self._is_ffa
|
||||||
),
|
else str(prec.score)
|
||||||
color=(0.5, 0.5, 0.5, 1.0),
|
),
|
||||||
position=(ts_h_offs + 230, ts_height / 2 + v_offs),
|
color=(0.5, 0.5, 0.5, 1.0),
|
||||||
h_align=Text.HAlign.RIGHT,
|
position=(ts_h_offs + 230, ts_height / 2 + v_offs),
|
||||||
transition=Text.Transition.IN_RIGHT,
|
h_align=Text.HAlign.RIGHT,
|
||||||
transition_delay=tdelay,
|
transition=Text.Transition.IN_RIGHT,
|
||||||
).autoretain()
|
transition_delay=tdelay,
|
||||||
tdelay -= 4 * t_incr
|
).autoretain()
|
||||||
|
tdelay -= 4 * t_incr
|
||||||
|
|
||||||
Image(
|
Image(
|
||||||
prec.get_icon(),
|
prec.get_icon(),
|
||||||
position=(ts_h_offs - 72, ts_height / 2 + v_offs + 15),
|
position=(ts_h_offs - 72, ts_height / 2 + v_offs + 15),
|
||||||
scale=(30, 30),
|
scale=(30, 30),
|
||||||
transition=Image.Transition.IN_LEFT,
|
transition=Image.Transition.IN_LEFT,
|
||||||
transition_delay=tdelay,
|
transition_delay=tdelay,
|
||||||
).autoretain()
|
).autoretain()
|
||||||
Text(
|
Text(
|
||||||
bs.Lstr(value=name),
|
bs.Lstr(value=name),
|
||||||
position=(ts_h_offs - 50, ts_height / 2 + v_offs + 15),
|
position=(ts_h_offs - 50, ts_height / 2 + v_offs + 15),
|
||||||
h_align=Text.HAlign.LEFT,
|
h_align=Text.HAlign.LEFT,
|
||||||
v_align=Text.VAlign.CENTER,
|
v_align=Text.VAlign.CENTER,
|
||||||
maxwidth=180,
|
maxwidth=180,
|
||||||
color=bs.safecolor(prec.team.color + (1,)),
|
color=bs.safecolor(prec.team.color + (1,)),
|
||||||
transition=Text.Transition.IN_RIGHT,
|
transition=Text.Transition.IN_RIGHT,
|
||||||
transition_delay=tdelay,
|
transition_delay=tdelay,
|
||||||
).autoretain()
|
).autoretain()
|
||||||
|
|
||||||
bs.timer(15.0, bs.WeakCall(self._show_tips))
|
bs.timer(15.0, bs.WeakCall(self._show_tips))
|
||||||
|
|
||||||
@ -440,16 +451,20 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity):
|
|||||||
).autoretain()
|
).autoretain()
|
||||||
else:
|
else:
|
||||||
offs_v = -80
|
offs_v = -80
|
||||||
|
assert isinstance(self.session, bs.MultiTeamSession)
|
||||||
series_length = self.session.get_ffa_series_length()
|
series_length = self.session.get_ffa_series_length()
|
||||||
|
icon: dict | None
|
||||||
|
# Pull live player info if they're still around.
|
||||||
if len(team.players) == 1:
|
if len(team.players) == 1:
|
||||||
icon = team.players[0].get_icon()
|
icon = team.players[0].get_icon()
|
||||||
player_name = team.players[0].getname(full=True, icon=False)
|
player_name = team.players[0].getname(full=True, icon=False)
|
||||||
|
# Otherwise use the special info we stored when we came in.
|
||||||
elif (
|
elif (
|
||||||
self._topscored_player is not None and
|
self._ffa_top_player_info is not None
|
||||||
self._topscored_player[0] >= series_length
|
and self._ffa_top_player_info[0] >= series_length
|
||||||
):
|
):
|
||||||
icon = self._topscored_player[2]
|
icon = self._ffa_top_player_info[2]
|
||||||
player_name = self._topscored_player[1]
|
player_name = self._ffa_top_player_info[1]
|
||||||
else:
|
else:
|
||||||
icon = None
|
icon = None
|
||||||
player_name = 'Player Not Found'
|
player_name = 'Player Not Found'
|
||||||
|
|||||||
@ -379,7 +379,7 @@ class Scoreboard:
|
|||||||
score_split: float = 0.7,
|
score_split: float = 0.7,
|
||||||
pos: Sequence[float] | None = None,
|
pos: Sequence[float] | None = None,
|
||||||
width: float | None = None,
|
width: float | None = None,
|
||||||
height: float | None = None
|
height: float | None = None,
|
||||||
):
|
):
|
||||||
"""Instantiate a scoreboard.
|
"""Instantiate a scoreboard.
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,7 @@ from typing import cast, override
|
|||||||
import bauiv1 as bui
|
import bauiv1 as bui
|
||||||
import bascenev1 as bs
|
import bascenev1 as bs
|
||||||
|
|
||||||
|
|
||||||
class BenchmarksAndStressTestsWindow(bui.MainWindow):
|
class BenchmarksAndStressTestsWindow(bui.MainWindow):
|
||||||
"""Window for launching benchmarks or stress tests."""
|
"""Window for launching benchmarks or stress tests."""
|
||||||
|
|
||||||
@ -383,9 +384,8 @@ class BenchmarksAndStressTestsWindow(bui.MainWindow):
|
|||||||
bui.app.classic.run_stress_test(
|
bui.app.classic.run_stress_test(
|
||||||
playlist_type=self._stress_test_game_type,
|
playlist_type=self._stress_test_game_type,
|
||||||
playlist_name=cast(
|
playlist_name=cast(
|
||||||
str, bui.textwidget(
|
str,
|
||||||
query=self._stress_test_playlist_name_field
|
bui.textwidget(query=self._stress_test_playlist_name_field),
|
||||||
)
|
|
||||||
),
|
),
|
||||||
player_count=self._stress_test_player_count,
|
player_count=self._stress_test_player_count,
|
||||||
round_duration=self._stress_test_round_duration,
|
round_duration=self._stress_test_round_duration,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user