From 7ce739f38197406b0283bc6512ad29c2deecdfb6 Mon Sep 17 00:00:00 2001 From: Vishal Date: Wed, 25 Sep 2024 01:03:23 +0530 Subject: [PATCH 01/18] Removing a little code --- src/assets/ba_data/python/bauiv1lib/ingamemenu.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/assets/ba_data/python/bauiv1lib/ingamemenu.py b/src/assets/ba_data/python/bauiv1lib/ingamemenu.py index 96b23840..f72477f9 100644 --- a/src/assets/ba_data/python/bauiv1lib/ingamemenu.py +++ b/src/assets/ba_data/python/bauiv1lib/ingamemenu.py @@ -592,6 +592,3 @@ class InGameMenuWindow(bui.MainWindow): logging.exception('Error in classic resume callback.') classic.main_menu_resume_callbacks.clear() - - def __del__(self) -> None: - self._resume() From 5d130e28e561b58686ea916385b87d797894f91e Mon Sep 17 00:00:00 2001 From: Vishal Date: Wed, 25 Sep 2024 01:07:16 +0530 Subject: [PATCH 02/18] Fixing a mistake I did --- src/assets/ba_data/python/bauiv1/_hooks.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/assets/ba_data/python/bauiv1/_hooks.py b/src/assets/ba_data/python/bauiv1/_hooks.py index 979f43fe..0f91364d 100644 --- a/src/assets/ba_data/python/bauiv1/_hooks.py +++ b/src/assets/ba_data/python/bauiv1/_hooks.py @@ -125,7 +125,13 @@ def root_ui_level_icon_press() -> None: def root_ui_menu_button_press() -> None: from bauiv1._appsubsystem import UIV1AppSubsystem + from babase import app + if app.classic is None: + logging.exception('Classic not present.') + return + + app.classic.resume() _root_ui_button_press(UIV1AppSubsystem.RootUIElement.MENU_BUTTON) From fc21acbc39c311184e8c101ff5d7783dcb8e734c Mon Sep 17 00:00:00 2001 From: Vishal Date: Wed, 25 Sep 2024 01:18:10 +0530 Subject: [PATCH 03/18] Adding parameters to change position, height and width of scoreboard. --- .../python/bascenev1lib/actor/scoreboard.py | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py b/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py index f5e30583..760da73e 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py @@ -22,15 +22,16 @@ class _Entry: scale: float, label: bs.Lstr | None, flash_length: float, + width: float | None = None, + height: float | None = None, ): # pylint: disable=too-many-statements - # pylint: disable=too-many-positional-arguments self._scoreboard = weakref.ref(scoreboard) self._do_cover = do_cover self._scale = scale self._flash_length = flash_length - self._width = 140.0 * self._scale - self._height = 32.0 * self._scale + self._width = (140.0 if width is None else width) * self._scale + self._height = (32.0 if height is None else height) * self._scale self._bar_width = 2.0 * self._scale self._bar_height = 32.0 * self._scale self._bar_tex = self._backing_tex = bs.gettexture('bar') @@ -278,7 +279,6 @@ class _Entry: def set_value( self, score: float, - *, max_score: float | None = None, countdown: bool = False, flash: bool = True, @@ -370,7 +370,14 @@ class Scoreboard: _ENTRYSTORENAME = bs.storagename('entry') - def __init__(self, label: bs.Lstr | None = None, score_split: float = 0.7): + def __init__( + self, + label: bs.Lstr | None = None, + score_split: float = 0.7, + pos: Sequence[float] | None = None, + width: float | None = None, + height: float | None = None + ): """Instantiate a scoreboard. Label can be something like 'points' and will @@ -380,6 +387,8 @@ class Scoreboard: self._entries: dict[int, _Entry] = {} self._label = label self.score_split = score_split + self._width = width + self._height = height # For free-for-all we go simpler since we have one per player. self._pos: Sequence[float] @@ -395,13 +404,13 @@ class Scoreboard: self._pos = (20.0, -70.0) self._scale = 1.0 self._flash_length = 1.0 + self._pos = self._pos if pos is None else pos def set_team_value( self, team: bs.Team, score: float, max_score: float | None = None, - *, countdown: bool = False, flash: bool = True, show_value: bool = True, @@ -433,6 +442,8 @@ class Scoreboard: do_cover=self._do_cover, scale=self._scale, label=self._label, + width=self._width, + height=self._height, flash_length=self._flash_length, ) self._update_teams() From 6171259b34da33b86ea2d8f3cda09ca0ce95d6d0 Mon Sep 17 00:00:00 2001 From: Vishal Date: Wed, 25 Sep 2024 01:22:09 +0530 Subject: [PATCH 04/18] small change --- src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py b/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py index 760da73e..7c19422e 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py @@ -279,6 +279,7 @@ class _Entry: def set_value( self, score: float, + *, max_score: float | None = None, countdown: bool = False, flash: bool = True, From 2e3191c76aaf990c7c2859147f2a6c9330aeda4e Mon Sep 17 00:00:00 2001 From: Vishal Date: Wed, 25 Sep 2024 01:35:33 +0530 Subject: [PATCH 05/18] Fixing pylint --- src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py b/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py index 7c19422e..d2d7ca6d 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py @@ -25,7 +25,9 @@ class _Entry: width: float | None = None, height: float | None = None, ): + # pylint: disable=too-many-locals # pylint: disable=too-many-statements + # pylint: disable=too-many-positional-arguments self._scoreboard = weakref.ref(scoreboard) self._do_cover = do_cover self._scale = scale @@ -384,6 +386,7 @@ class Scoreboard: Label can be something like 'points' and will show up on boards if provided. """ + # pylint: disable=too-many-positional-arguments self._flat_tex = bs.gettexture('null') self._entries: dict[int, _Entry] = {} self._label = label @@ -417,6 +420,7 @@ class Scoreboard: show_value: bool = True, ) -> None: """Update the score-board display for the given bs.Team.""" + # pylint: disable=too-many-positional-arguments if team.id not in self._entries: self._add_team(team) From fee6e59440a9e2a77208429eb4c0001d2ee96345 Mon Sep 17 00:00:00 2001 From: Vishal Date: Wed, 25 Sep 2024 02:08:10 +0530 Subject: [PATCH 06/18] Stopping stress tests from running when you are already in a game --- .../ba_data/python/bauiv1lib/benchmarks.py | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/assets/ba_data/python/bauiv1lib/benchmarks.py b/src/assets/ba_data/python/bauiv1lib/benchmarks.py index 927300ba..e1319cce 100644 --- a/src/assets/ba_data/python/bauiv1lib/benchmarks.py +++ b/src/assets/ba_data/python/bauiv1lib/benchmarks.py @@ -366,16 +366,22 @@ class BenchmarksAndStressTestsWindow(bui.MainWindow): bui.app.classic.run_media_reload_benchmark() def _stress_test_pressed(self) -> None: + from bascenev1lib.mainmenu import MainMenuActivity + if bui.app.classic is None: logging.warning('stress-test requires classic') return - bui.app.classic.run_stress_test( - playlist_type=self._stress_test_game_type, - playlist_name=cast( - str, bui.textwidget(query=self._stress_test_playlist_name_field) - ), - player_count=self._stress_test_player_count, - round_duration=self._stress_test_round_duration, - ) - bui.containerwidget(edit=self._root_widget, transition='out_right') + activity = bs.get_foreground_host_activity() + if isinstance(activity, MainMenuActivity): + bui.app.classic.run_stress_test( + playlist_type=self._stress_test_game_type, + playlist_name=cast( + str, bui.textwidget(query=self._stress_test_playlist_name_field) + ), + player_count=self._stress_test_player_count, + round_duration=self._stress_test_round_duration, + ) + bui.containerwidget(edit=self._root_widget, transition='out_right') + else: + bui.screenmessage(bui.Lstr(value='Already present in another activity.')) From 6f26ff0cf1f4fecafe402fd43722f7801a92bd58 Mon Sep 17 00:00:00 2001 From: Vishal Date: Wed, 25 Sep 2024 02:13:55 +0530 Subject: [PATCH 07/18] Forgot to import a module --- src/assets/ba_data/python/bauiv1lib/benchmarks.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/assets/ba_data/python/bauiv1lib/benchmarks.py b/src/assets/ba_data/python/bauiv1lib/benchmarks.py index e1319cce..842518f8 100644 --- a/src/assets/ba_data/python/bauiv1lib/benchmarks.py +++ b/src/assets/ba_data/python/bauiv1lib/benchmarks.py @@ -8,6 +8,7 @@ import logging from typing import cast, override import bauiv1 as bui +import bascenev1 as bs class BenchmarksAndStressTestsWindow(bui.MainWindow): From 2250004d7b73d3c158f78c5ca7c46bd8d23009f7 Mon Sep 17 00:00:00 2001 From: Vishal Date: Wed, 25 Sep 2024 02:18:43 +0530 Subject: [PATCH 08/18] Fixing Pylint (I hate you Pylint) --- src/assets/ba_data/python/bauiv1lib/benchmarks.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/assets/ba_data/python/bauiv1lib/benchmarks.py b/src/assets/ba_data/python/bauiv1lib/benchmarks.py index 842518f8..b2bd1bb5 100644 --- a/src/assets/ba_data/python/bauiv1lib/benchmarks.py +++ b/src/assets/ba_data/python/bauiv1lib/benchmarks.py @@ -378,11 +378,15 @@ class BenchmarksAndStressTestsWindow(bui.MainWindow): bui.app.classic.run_stress_test( playlist_type=self._stress_test_game_type, playlist_name=cast( - str, bui.textwidget(query=self._stress_test_playlist_name_field) + str, bui.textwidget( + query=self._stress_test_playlist_name_field + ) ), player_count=self._stress_test_player_count, round_duration=self._stress_test_round_duration, ) bui.containerwidget(edit=self._root_widget, transition='out_right') else: - bui.screenmessage(bui.Lstr(value='Already present in another activity.')) + bui.screenmessage( + bui.Lstr(value='Already present in another activity.') + ) From 6efd0822a7583c5ac28e1ad4924e2363692e349a Mon Sep 17 00:00:00 2001 From: Vishal Date: Sat, 28 Sep 2024 03:10:27 +0530 Subject: [PATCH 09/18] Trying to fix conflict --- src/assets/ba_data/python/bauiv1lib/{ => settings}/benchmarks.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/assets/ba_data/python/bauiv1lib/{ => settings}/benchmarks.py (100%) diff --git a/src/assets/ba_data/python/bauiv1lib/benchmarks.py b/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py similarity index 100% rename from src/assets/ba_data/python/bauiv1lib/benchmarks.py rename to src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py From 50bc3865d40a0a8868a8dc0f46dc0c1b13008915 Mon Sep 17 00:00:00 2001 From: Vishal Date: Sat, 28 Sep 2024 03:13:46 +0530 Subject: [PATCH 10/18] Update benchmarks.py --- .../python/bauiv1lib/settings/benchmarks.py | 45 +++++++++---------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py b/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py index b2bd1bb5..1f841057 100644 --- a/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py +++ b/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py @@ -8,7 +8,6 @@ import logging from typing import cast, override import bauiv1 as bui -import bascenev1 as bs class BenchmarksAndStressTestsWindow(bui.MainWindow): @@ -26,13 +25,16 @@ class BenchmarksAndStressTestsWindow(bui.MainWindow): uiscale = bui.app.ui_v1.uiscale self._width = width = 650 if uiscale is bui.UIScale.SMALL else 580 self._height = height = ( - 330 + 400 if uiscale is bui.UIScale.SMALL else 420 if uiscale is bui.UIScale.MEDIUM else 520 ) + yoffs = -30 if uiscale is bui.UIScale.SMALL else 0 self._scroll_width = self._width - 100 - self._scroll_height = self._height - 120 + self._scroll_height = self._height - ( + 180 if uiscale is bui.UIScale.SMALL else 120 + ) self._sub_width = self._scroll_width * 0.95 self._sub_height = 520 @@ -73,7 +75,7 @@ class BenchmarksAndStressTestsWindow(bui.MainWindow): else: self._done_button = btn = bui.buttonwidget( parent=self._root_widget, - position=(40, height - 67), + position=(40, height - 67 + yoffs), size=(120, 60), scale=0.8, autoselect=True, @@ -84,7 +86,7 @@ class BenchmarksAndStressTestsWindow(bui.MainWindow): bui.textwidget( parent=self._root_widget, - position=(0, height - 60), + position=(0, height - 60 + yoffs), size=(width, 30), text=bui.Lstr(resource=f'{self._r}.titleText'), h_align='center', @@ -97,7 +99,10 @@ class BenchmarksAndStressTestsWindow(bui.MainWindow): parent=self._root_widget, highlight=False, size=(self._scroll_width, self._scroll_height), - position=((self._width - self._scroll_width) * 0.5, 50), + position=( + (self._width - self._scroll_width) * 0.5, + (115 if uiscale is bui.UIScale.SMALL else 50) + yoffs, + ), ) bui.containerwidget(edit=self._scrollwidget, claims_left_right=True) @@ -367,26 +372,16 @@ class BenchmarksAndStressTestsWindow(bui.MainWindow): bui.app.classic.run_media_reload_benchmark() def _stress_test_pressed(self) -> None: - from bascenev1lib.mainmenu import MainMenuActivity - if bui.app.classic is None: logging.warning('stress-test requires classic') return - activity = bs.get_foreground_host_activity() - if isinstance(activity, MainMenuActivity): - bui.app.classic.run_stress_test( - playlist_type=self._stress_test_game_type, - playlist_name=cast( - str, bui.textwidget( - query=self._stress_test_playlist_name_field - ) - ), - player_count=self._stress_test_player_count, - round_duration=self._stress_test_round_duration, - ) - bui.containerwidget(edit=self._root_widget, transition='out_right') - else: - bui.screenmessage( - bui.Lstr(value='Already present in another activity.') - ) + bui.app.classic.run_stress_test( + playlist_type=self._stress_test_game_type, + playlist_name=cast( + str, bui.textwidget(query=self._stress_test_playlist_name_field) + ), + player_count=self._stress_test_player_count, + round_duration=self._stress_test_round_duration, + ) + bui.containerwidget(edit=self._root_widget, transition='out_right') From 073013c778d70f4e1e1d53d4c756402f680488f9 Mon Sep 17 00:00:00 2001 From: Vishal Date: Sat, 28 Sep 2024 03:17:33 +0530 Subject: [PATCH 11/18] Adding checks to make sure stress-test doesn't run during game --- .../python/bauiv1lib/settings/benchmarks.py | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py b/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py index 1f841057..9012f7ec 100644 --- a/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py +++ b/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py @@ -8,7 +8,7 @@ import logging from typing import cast, override import bauiv1 as bui - +import bascenev1 as bs class BenchmarksAndStressTestsWindow(bui.MainWindow): """Window for launching benchmarks or stress tests.""" @@ -372,16 +372,22 @@ class BenchmarksAndStressTestsWindow(bui.MainWindow): bui.app.classic.run_media_reload_benchmark() def _stress_test_pressed(self) -> None: + from bascenev1lib.mainmenu import MainMenuActivity + if bui.app.classic is None: logging.warning('stress-test requires classic') return - bui.app.classic.run_stress_test( - playlist_type=self._stress_test_game_type, - playlist_name=cast( - str, bui.textwidget(query=self._stress_test_playlist_name_field) - ), - player_count=self._stress_test_player_count, - round_duration=self._stress_test_round_duration, - ) - bui.containerwidget(edit=self._root_widget, transition='out_right') + activity = bs.get_foreground_host_activity() + if isinstance(activity, MainMenuActivity): + bui.app.classic.run_stress_test( + playlist_type=self._stress_test_game_type, + playlist_name=cast( + str, bui.textwidget(query=self._stress_test_playlist_name_field) + ), + player_count=self._stress_test_player_count, + round_duration=self._stress_test_round_duration, + ) + bui.containerwidget(edit=self._root_widget, transition='out_right') + else: + bui.screenmessage(bui.Lstr(value='Already present in another activity.')) From 4e5da57b09cd73f95537e88bafbd023a8ea24bdf Mon Sep 17 00:00:00 2001 From: Vishal Date: Sat, 28 Sep 2024 04:00:23 +0530 Subject: [PATCH 12/18] Fixing a Bug which doesn't display the winner if the player leaves --- .../bascenev1lib/activity/multiteamvictory.py | 99 +++++++++++-------- .../python/bascenev1lib/actor/scoreboard.py | 1 + 2 files changed, 57 insertions(+), 43 deletions(-) diff --git a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py index a8ecc289..6854a15f 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py @@ -75,6 +75,9 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): player_entries.append((prec.score, prec.name_full, prec)) player_entries.sort(reverse=True, key=lambda x: x[0]) + self._topscored_player = list(player_entries[0]) + self._mostscore_player[1] = self._mostscore_player[2].getname() + self._topscored_player[2] = self._topscored_player[2].get_icon() ts_height = 300.0 ts_h_offs = -390.0 tval = 6.4 @@ -372,39 +375,40 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): v_offs = 0.0 tdelay += len(player_entries) * 8 * t_incr for _score, name, prec in player_entries: - tdelay -= 4 * t_incr - v_offs -= 40 - Text( - ( - str(prec.team.customdata['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), - h_align=Text.HAlign.RIGHT, - transition=Text.Transition.IN_RIGHT, - transition_delay=tdelay, - ).autoretain() - tdelay -= 4 * t_incr + if prec.player.in_game: + tdelay -= 4 * t_incr + v_offs -= 40 + Text( + ( + str(prec.team.customdata['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), + h_align=Text.HAlign.RIGHT, + transition=Text.Transition.IN_RIGHT, + transition_delay=tdelay, + ).autoretain() + tdelay -= 4 * t_incr - Image( - prec.get_icon(), - position=(ts_h_offs - 72, ts_height / 2 + v_offs + 15), - scale=(30, 30), - transition=Image.Transition.IN_LEFT, - transition_delay=tdelay, - ).autoretain() - Text( - bs.Lstr(value=name), - position=(ts_h_offs - 50, ts_height / 2 + v_offs + 15), - h_align=Text.HAlign.LEFT, - v_align=Text.VAlign.CENTER, - maxwidth=180, - color=bs.safecolor(prec.team.color + (1,)), - transition=Text.Transition.IN_RIGHT, - transition_delay=tdelay, - ).autoretain() + Image( + prec.get_icon(), + position=(ts_h_offs - 72, ts_height / 2 + v_offs + 15), + scale=(30, 30), + transition=Image.Transition.IN_LEFT, + transition_delay=tdelay, + ).autoretain() + Text( + bs.Lstr(value=name), + position=(ts_h_offs - 50, ts_height / 2 + v_offs + 15), + h_align=Text.HAlign.LEFT, + v_align=Text.VAlign.CENTER, + maxwidth=180, + color=bs.safecolor(prec.team.color + (1,)), + transition=Text.Transition.IN_RIGHT, + transition_delay=tdelay, + ).autoretain() bs.timer(15.0, bs.WeakCall(self._show_tips)) @@ -435,23 +439,32 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): else: offs_v = -80.0 if len(team.players) == 1: + icon = team.players[0].get_icon() + player_name = team.players[0].getname(full=True, icon=False) + elif self._topscored_player[0] >= self.session.get_ffa_series_length(): + icon = self._topscored_player[2] + player_name = self._topscored_player[1] + else: + icon = None + player_name = "Player Not Found" + + if icon is not None: i = Image( - team.players[0].get_icon(), + icon, position=(0, 143), scale=(100, 100), ).autoretain() assert i.node bs.animate(i.node, 'opacity', {0.0: 0.0, 0.25: 1.0}) - ZoomText( - bs.Lstr( - value=team.players[0].getname(full=True, icon=False) - ), - position=(0, 97 + offs_v), - color=team.color, - scale=1.15, - jitter=1.0, - maxwidth=250, - ).autoretain() + + ZoomText( + bs.Lstr(value=player_name), + position=(0, 97 + offs_v + (60 if icon is None else 0)), + color=team.color, + scale=1.15, + jitter=1.0, + maxwidth=250, + ).autoretain() s_extra = 1.0 if self._is_ffa else 1.0 diff --git a/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py b/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py index d2d7ca6d..510b1e15 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py @@ -415,6 +415,7 @@ class Scoreboard: team: bs.Team, score: float, max_score: float | None = None, + *, countdown: bool = False, flash: bool = True, show_value: bool = True, From 3fa27b6246dc70ee266680b8ba4636fb1723216f Mon Sep 17 00:00:00 2001 From: Vishal Date: Sat, 28 Sep 2024 04:09:43 +0530 Subject: [PATCH 13/18] Fixing Pylint Again --- .../python/bascenev1lib/activity/multiteamvictory.py | 6 ++++-- .../ba_data/python/bascenev1lib/actor/scoreboard.py | 1 - .../ba_data/python/bauiv1lib/settings/benchmarks.py | 8 ++++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py index 6854a15f..984e1cc3 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py @@ -24,6 +24,7 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): self._allow_server_transition = True self._tips_text = None self._default_show_tips = False + self._topscored_player = None @override def on_begin(self) -> None: @@ -438,15 +439,16 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): ).autoretain() else: offs_v = -80.0 + series_length = self.session.get_ffa_series_length() if len(team.players) == 1: icon = team.players[0].get_icon() player_name = team.players[0].getname(full=True, icon=False) - elif self._topscored_player[0] >= self.session.get_ffa_series_length(): + elif self._topscored_player[0] >= series_length: icon = self._topscored_player[2] player_name = self._topscored_player[1] else: icon = None - player_name = "Player Not Found" + player_name = 'Player Not Found' if icon is not None: i = Image( diff --git a/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py b/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py index 510b1e15..46660468 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/scoreboard.py @@ -421,7 +421,6 @@ class Scoreboard: show_value: bool = True, ) -> None: """Update the score-board display for the given bs.Team.""" - # pylint: disable=too-many-positional-arguments if team.id not in self._entries: self._add_team(team) diff --git a/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py b/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py index 9012f7ec..cdc2ab25 100644 --- a/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py +++ b/src/assets/ba_data/python/bauiv1lib/settings/benchmarks.py @@ -383,11 +383,15 @@ class BenchmarksAndStressTestsWindow(bui.MainWindow): bui.app.classic.run_stress_test( playlist_type=self._stress_test_game_type, playlist_name=cast( - str, bui.textwidget(query=self._stress_test_playlist_name_field) + str, bui.textwidget( + query=self._stress_test_playlist_name_field + ) ), player_count=self._stress_test_player_count, round_duration=self._stress_test_round_duration, ) bui.containerwidget(edit=self._root_widget, transition='out_right') else: - bui.screenmessage(bui.Lstr(value='Already present in another activity.')) + bui.screenmessage( + bui.Lstr(value='Already present in another activity.') + ) From 90dd95b10100dcebae839061981d54157deadfd1 Mon Sep 17 00:00:00 2001 From: Vishal Date: Sat, 28 Sep 2024 04:18:25 +0530 Subject: [PATCH 14/18] Fixing Mypy --- .../python/bascenev1lib/activity/multiteamvictory.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py index 984e1cc3..298d2286 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py @@ -24,7 +24,7 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): self._allow_server_transition = True self._tips_text = None self._default_show_tips = False - self._topscored_player = None + self._topscored_player: list[object] | None = None @override def on_begin(self) -> None: @@ -77,7 +77,7 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): player_entries.sort(reverse=True, key=lambda x: x[0]) self._topscored_player = list(player_entries[0]) - self._mostscore_player[1] = self._mostscore_player[2].getname() + self._topscored_player[1] = self._topscored_player[2].getname() self._topscored_player[2] = self._topscored_player[2].get_icon() ts_height = 300.0 ts_h_offs = -390.0 @@ -438,7 +438,7 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): maxwidth=250, ).autoretain() else: - offs_v = -80.0 + offs_v = -80 series_length = self.session.get_ffa_series_length() if len(team.players) == 1: icon = team.players[0].get_icon() @@ -461,7 +461,7 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): ZoomText( bs.Lstr(value=player_name), - position=(0, 97 + offs_v + (60 if icon is None else 0)), + position=(0, 97 + offs_v + (0 if icon is not None else 60)), color=team.color, scale=1.15, jitter=1.0, From 25664e4d8f7ad952535a589eaf263304881c2685 Mon Sep 17 00:00:00 2001 From: Vishal Date: Sat, 28 Sep 2024 20:15:31 +0530 Subject: [PATCH 15/18] Eyeballing Fixes --- .../python/bascenev1lib/activity/multiteamvictory.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py index 298d2286..f977f5b4 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py @@ -71,14 +71,15 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): ) ) player_entries.sort(reverse=True, key=lambda x: x[0]) + if len(player_entries) > 0: + self._topscored_player = list(player_entries[0]) + self._topscored_player[1] = self._topscored_player[2].getname() + self._topscored_player[2] = self._topscored_player[2].get_icon() else: for _pkey, prec in self.stats.get_records().items(): player_entries.append((prec.score, prec.name_full, prec)) player_entries.sort(reverse=True, key=lambda x: x[0]) - self._topscored_player = list(player_entries[0]) - self._topscored_player[1] = self._topscored_player[2].getname() - self._topscored_player[2] = self._topscored_player[2].get_icon() ts_height = 300.0 ts_h_offs = -390.0 tval = 6.4 @@ -443,7 +444,10 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): if len(team.players) == 1: icon = team.players[0].get_icon() player_name = team.players[0].getname(full=True, icon=False) - elif self._topscored_player[0] >= series_length: + elif ( + self._topscored_player is not None and + self._topscored_player[0] >= series_length + ): icon = self._topscored_player[2] player_name = self._topscored_player[1] else: From 6401ae69417e42fd821e26f3f2e429efb9ab993e Mon Sep 17 00:00:00 2001 From: Vishal Date: Sat, 28 Sep 2024 20:25:01 +0530 Subject: [PATCH 16/18] A small indent fix --- .../ba_data/python/bascenev1lib/activity/multiteamvictory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py index f977f5b4..a024da7d 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py @@ -444,7 +444,7 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): if len(team.players) == 1: icon = team.players[0].get_icon() player_name = team.players[0].getname(full=True, icon=False) - elif ( + elif ( self._topscored_player is not None and self._topscored_player[0] >= series_length ): From cf636f7cc96b402119eba634f8883eeab6c7a2e6 Mon Sep 17 00:00:00 2001 From: Vishal Date: Sun, 29 Sep 2024 02:00:45 +0530 Subject: [PATCH 17/18] Fixing conflict --- src/assets/ba_data/python/bauiv1lib/ingamemenu.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/assets/ba_data/python/bauiv1lib/ingamemenu.py b/src/assets/ba_data/python/bauiv1lib/ingamemenu.py index f72477f9..b048b18b 100644 --- a/src/assets/ba_data/python/bauiv1lib/ingamemenu.py +++ b/src/assets/ba_data/python/bauiv1lib/ingamemenu.py @@ -592,3 +592,6 @@ class InGameMenuWindow(bui.MainWindow): logging.exception('Error in classic resume callback.') classic.main_menu_resume_callbacks.clear() + + # def __del__(self) -> None: + # self._resume() From d549e5280432a9346356f8a88e4daed3a414ae7f Mon Sep 17 00:00:00 2001 From: Vishal Date: Sun, 29 Sep 2024 02:11:39 +0530 Subject: [PATCH 18/18] Removing this code as Eric fixed it --- src/assets/ba_data/python/bauiv1/_hooks.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/assets/ba_data/python/bauiv1/_hooks.py b/src/assets/ba_data/python/bauiv1/_hooks.py index 0f91364d..979f43fe 100644 --- a/src/assets/ba_data/python/bauiv1/_hooks.py +++ b/src/assets/ba_data/python/bauiv1/_hooks.py @@ -125,13 +125,7 @@ def root_ui_level_icon_press() -> None: def root_ui_menu_button_press() -> None: from bauiv1._appsubsystem import UIV1AppSubsystem - from babase import app - if app.classic is None: - logging.exception('Classic not present.') - return - - app.classic.resume() _root_ui_button_press(UIV1AppSubsystem.RootUIElement.MENU_BUTTON)