players running this version or newer get a 10 percent league score bonus (replaces pro bonus)

This commit is contained in:
Eric Froemling 2025-01-18 12:19:07 -08:00
parent 4dbe0be487
commit 091b369942
No known key found for this signature in database
7 changed files with 102 additions and 78 deletions

60
.efrocachemap generated
View File

@ -432,7 +432,7 @@
"build/assets/ba_data/audio/zoeOw.ogg": "b2d705c31c9dcc1efdc71394764c3beb", "build/assets/ba_data/audio/zoeOw.ogg": "b2d705c31c9dcc1efdc71394764c3beb",
"build/assets/ba_data/audio/zoePickup01.ogg": "e9366dc2d2b8ab8b0c4e2c14c02d0789", "build/assets/ba_data/audio/zoePickup01.ogg": "e9366dc2d2b8ab8b0c4e2c14c02d0789",
"build/assets/ba_data/audio/zoeScream01.ogg": "903e0e45ee9b3373e9d9ce20c814374e", "build/assets/ba_data/audio/zoeScream01.ogg": "903e0e45ee9b3373e9d9ce20c814374e",
"build/assets/ba_data/data/langdata.json": "d0cd6dc622b1270b296722fad38dd229", "build/assets/ba_data/data/langdata.json": "5e1dccd1106faa1a8b0d2c1cb15429dd",
"build/assets/ba_data/data/languages/arabic.json": "32b9849fb8389b8c7798f0b744620318", "build/assets/ba_data/data/languages/arabic.json": "32b9849fb8389b8c7798f0b744620318",
"build/assets/ba_data/data/languages/belarussian.json": "009b452aa308bf2b2f7e92d9b78ba5ff", "build/assets/ba_data/data/languages/belarussian.json": "009b452aa308bf2b2f7e92d9b78ba5ff",
"build/assets/ba_data/data/languages/chinese.json": "168b529f2d55d714886be57f162f6842", "build/assets/ba_data/data/languages/chinese.json": "168b529f2d55d714886be57f162f6842",
@ -441,12 +441,12 @@
"build/assets/ba_data/data/languages/czech.json": "3418bee44e69be13b7f72996abe96921", "build/assets/ba_data/data/languages/czech.json": "3418bee44e69be13b7f72996abe96921",
"build/assets/ba_data/data/languages/danish.json": "8e57db30c5250df2abff14a822f83ea7", "build/assets/ba_data/data/languages/danish.json": "8e57db30c5250df2abff14a822f83ea7",
"build/assets/ba_data/data/languages/dutch.json": "4ba5bbcc0fecddd0aac6ee2c165d1e40", "build/assets/ba_data/data/languages/dutch.json": "4ba5bbcc0fecddd0aac6ee2c165d1e40",
"build/assets/ba_data/data/languages/english.json": "3fadacf666ee8578454b32f0cca4b90d", "build/assets/ba_data/data/languages/english.json": "739c318260ddd4cff781cba50d5cab1c",
"build/assets/ba_data/data/languages/esperanto.json": "0e397cfa5f3fb8cef5f4a64f21cda880", "build/assets/ba_data/data/languages/esperanto.json": "0e397cfa5f3fb8cef5f4a64f21cda880",
"build/assets/ba_data/data/languages/filipino.json": "1894fc331dcad7ce9cf4c180843f548f", "build/assets/ba_data/data/languages/filipino.json": "1894fc331dcad7ce9cf4c180843f548f",
"build/assets/ba_data/data/languages/french.json": "6d20655730b1017ef187fd828b91d43c", "build/assets/ba_data/data/languages/french.json": "6d20655730b1017ef187fd828b91d43c",
"build/assets/ba_data/data/languages/german.json": "bc656f1ada467161c23546f48d0dacc5", "build/assets/ba_data/data/languages/german.json": "bc656f1ada467161c23546f48d0dacc5",
"build/assets/ba_data/data/languages/gibberish.json": "640231f8f1eb01e4d617889abf3c25e4", "build/assets/ba_data/data/languages/gibberish.json": "067479eeefd6508bc4d1019b7ff92017",
"build/assets/ba_data/data/languages/greek.json": "d28d1092fbb00ed857cbd53124c0dc78", "build/assets/ba_data/data/languages/greek.json": "d28d1092fbb00ed857cbd53124c0dc78",
"build/assets/ba_data/data/languages/hindi.json": "567e6976b3c72f891431ad7fcc62ab16", "build/assets/ba_data/data/languages/hindi.json": "567e6976b3c72f891431ad7fcc62ab16",
"build/assets/ba_data/data/languages/hungarian.json": "af801baffb2c06460635dfb04c34bb3e", "build/assets/ba_data/data/languages/hungarian.json": "af801baffb2c06460635dfb04c34bb3e",
@ -457,16 +457,16 @@
"build/assets/ba_data/data/languages/persian.json": "517217e679c768fff4ffec7f8000ab77", "build/assets/ba_data/data/languages/persian.json": "517217e679c768fff4ffec7f8000ab77",
"build/assets/ba_data/data/languages/piratespeak.json": "be23decfaf220b3aa3de3cf35e59b420", "build/assets/ba_data/data/languages/piratespeak.json": "be23decfaf220b3aa3de3cf35e59b420",
"build/assets/ba_data/data/languages/polish.json": "993b612c5854fc42a78726ed09c65251", "build/assets/ba_data/data/languages/polish.json": "993b612c5854fc42a78726ed09c65251",
"build/assets/ba_data/data/languages/portuguese.json": "f034d8099298b56792d4e0e41c5c34a0", "build/assets/ba_data/data/languages/portuguese.json": "66fbf94a6ee7b2bc0d9efd6056302078",
"build/assets/ba_data/data/languages/romanian.json": "b04345d8c7631d657a69c73eb7be755a", "build/assets/ba_data/data/languages/romanian.json": "b04345d8c7631d657a69c73eb7be755a",
"build/assets/ba_data/data/languages/russian.json": "eca8fe1ef8343aee559e49c49805b850", "build/assets/ba_data/data/languages/russian.json": "eca8fe1ef8343aee559e49c49805b850",
"build/assets/ba_data/data/languages/serbian.json": "623fa4129a1154c2f32ed7867e56ff6a", "build/assets/ba_data/data/languages/serbian.json": "623fa4129a1154c2f32ed7867e56ff6a",
"build/assets/ba_data/data/languages/slovak.json": "c11c29708b3742cdc2a92b4fa0d6d29f", "build/assets/ba_data/data/languages/slovak.json": "c11c29708b3742cdc2a92b4fa0d6d29f",
"build/assets/ba_data/data/languages/spanish.json": "fc68307ff25bb8ef93cf168ac4524e19", "build/assets/ba_data/data/languages/spanish.json": "c59f1f14083037b1ba48ffa0f12678ab",
"build/assets/ba_data/data/languages/swedish.json": "3b179e7333183c70adb0811246b09959", "build/assets/ba_data/data/languages/swedish.json": "3b179e7333183c70adb0811246b09959",
"build/assets/ba_data/data/languages/tamil.json": "ead39b864228696a9b0d19344bc4b5ec", "build/assets/ba_data/data/languages/tamil.json": "ead39b864228696a9b0d19344bc4b5ec",
"build/assets/ba_data/data/languages/thai.json": "383540a1e9c7c131ac579f51afc87471", "build/assets/ba_data/data/languages/thai.json": "383540a1e9c7c131ac579f51afc87471",
"build/assets/ba_data/data/languages/turkish.json": "1415bdb746551f0a24f0e675304dfe07", "build/assets/ba_data/data/languages/turkish.json": "974f54f3d2b4c4e8613de177e5d401f7",
"build/assets/ba_data/data/languages/ukrainian.json": "0db55824759119aca74d2ee8ffe6daae", "build/assets/ba_data/data/languages/ukrainian.json": "0db55824759119aca74d2ee8ffe6daae",
"build/assets/ba_data/data/languages/venetian.json": "e0666c6a1db1792d895fcb250e59861b", "build/assets/ba_data/data/languages/venetian.json": "e0666c6a1db1792d895fcb250e59861b",
"build/assets/ba_data/data/languages/vietnamese.json": "017d8aa346d0c23a229a8a9acccf79a1", "build/assets/ba_data/data/languages/vietnamese.json": "017d8aa346d0c23a229a8a9acccf79a1",
@ -4174,22 +4174,22 @@
"build/assets/windows/Win32/ucrtbased.dll": "bfd1180c269d3950b76f35a63655e9e1", "build/assets/windows/Win32/ucrtbased.dll": "bfd1180c269d3950b76f35a63655e9e1",
"build/assets/windows/Win32/vc_redist.x86.exe": "15a5f1f876503885adbdf5b3989b3718", "build/assets/windows/Win32/vc_redist.x86.exe": "15a5f1f876503885adbdf5b3989b3718",
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599", "build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "6f882d6748b3e5c92eb099f3b0b29837", "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "31209ca509f46fde3450eb8b7a39a520",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "0579a815f9f582dbf69e73da3e51500d", "build/prefab/full/linux_arm64_gui/release/ballisticakit": "03ec26492ef7dc28370cbb7f9902b0b9",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "aa04b11644160c8338052938ffbb7d8e", "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "9331d3a163409aa08b5b1e681d923231",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "9086d02dd9c39a9d95139b49d2f404a1", "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "7aeb21b72648fa81d27d18251fb60f68",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "14229b8337f1a4b9bf65f55a54a88937", "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "cecba50ac68398a3c4f8ddbaa9211d48",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "eac49802c4b77d1e341ee5dfe052663c", "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "683ff26a659c420a3738b5c58e17b37e",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "916b96eb3ccd5f44e77e052559fe6e32", "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "5e2f2dc71bd451900d7ece96e098dc00",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "06d13234688c95918472888b6778dbd4", "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "4745da922028681b1b5cc63a584030b3",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "caaad53329bad3d2b16d109cc5b2e37e", "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "a6527c54deee04b51029b1023a0b27fd",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "70b4672871efd3d57b6f2d15ff1341bc", "build/prefab/full/mac_arm64_gui/release/ballisticakit": "c6ceb3702ea22a2e187145a86bd51a13",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "f0afdeee1f22d35e942a54ae86a1dd74", "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "4ee039201fdaa4c9a5afbefd5a31c064",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "78019c91c31e36752bc2cb2bcf482f1e", "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "15f71fc2ee8e71c657c159edceaec719",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "93343b1e04752845eef31900d618e380", "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "1a56770399e5f6c91c25be77a68f38da",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "6b3c2f6d1d59ff8af390a99795fbcc7e", "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "bcb3448df41f7a7e91f2823e55253a57",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "9e7c2c5f38fb94211af69bce5e4ea1de", "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "6805beb9c0d1f967fe6a4344b5735aad",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "84c841a74a457ac69ec654363084a248", "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "b15bc3743c8021d1069568071e734a13",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "cbacac5a846cf8a0f6db760aaddcd13a", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "cbacac5a846cf8a0f6db760aaddcd13a",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "3d16bac10d8f15bac7fe20e3a927b275", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "3d16bac10d8f15bac7fe20e3a927b275",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "cbacac5a846cf8a0f6db760aaddcd13a", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "cbacac5a846cf8a0f6db760aaddcd13a",
@ -4202,14 +4202,14 @@
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "7dd182733a34da0ca5f5c97e5cb0b7f0", "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "7dd182733a34da0ca5f5c97e5cb0b7f0",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "6121591b94d920ee541194b65d93958a", "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "6121591b94d920ee541194b65d93958a",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "7dd182733a34da0ca5f5c97e5cb0b7f0", "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "7dd182733a34da0ca5f5c97e5cb0b7f0",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "15fe85e4facbf3799b234098d8f51534", "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "c512e7bacb6c8654b517a38604e0ccf2",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "bf5ff0b1826dac5bb9af5731805a1b0b", "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "21b911b0ee5e354d25e8acf740140188",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "142b2b2069ffa72525e8151fb7e4a695", "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "6313af7210edecf7e9cf026550bbb161",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "183266996ae2a53c9d555d8e1e9aaabe", "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "dc7d359250c39d0e636da2bf7d859deb",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "ffa58d5514f78d47b749aa62378244a3", "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "4c4c93e32beb69743b63f963748e1136",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "78dbe3b34535192fb2c9fbd70a61466b", "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "70f5185b13ab6e799dbfc9bdd0a9e997",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "4af3444c3917b7a2e5f937a639af9782", "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "f6adec2b792bc36c2cea2b395e827471",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "669f40763a85163af67e460c393ddb6a", "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "e674baf0049c634e6342cae5a266b567",
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c", "src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
"src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad", "src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad",
"src/ballistica/base/mgen/pyembed/binding_base.inc": "06042d31df0ff9af96b99477162e2a91", "src/ballistica/base/mgen/pyembed/binding_base.inc": "06042d31df0ff9af96b99477162e2a91",

View File

@ -1,4 +1,4 @@
### 1.7.37 (build 22200, api 9, 2025-01-17) ### 1.7.37 (build 22202, api 9, 2025-01-18)
- Bumping api version to 9. As you'll see below, there's some UI changes that - Bumping api version to 9. As you'll see below, there's some UI changes that
will require a bit of work for any UI mods to adapt to. If your mods don't will require a bit of work for any UI mods to adapt to. If your mods don't
touch UI stuff at all you can simply bump your api version and call it a day. touch UI stuff at all you can simply bump your api version and call it a day.

View File

@ -125,7 +125,11 @@ class AccountV1Subsystem:
if subset is not None: if subset is not None:
raise ValueError('invalid subset value: ' + str(subset)) raise ValueError('invalid subset value: ' + str(subset))
if data['p']: # We used to give this bonus for pro, but on recent versions of
# the game give it for everyone (since we are phasing out Pro).
# if data['p']:
if bool(True):
if babase.app.plus is None: if babase.app.plus is None:
pro_mult = 1.0 pro_mult = 1.0
else: else:

View File

@ -53,7 +53,7 @@ if TYPE_CHECKING:
# Build number and version of the ballistica binary we expect to be # Build number and version of the ballistica binary we expect to be
# using. # using.
TARGET_BALLISTICA_BUILD = 22200 TARGET_BALLISTICA_BUILD = 22202
TARGET_BALLISTICA_VERSION = '1.7.37' TARGET_BALLISTICA_VERSION = '1.7.37'

View File

@ -33,7 +33,7 @@ class LeagueRankWindow(bui.MainWindow):
self._league_rank_data: dict[str, Any] | None = None self._league_rank_data: dict[str, Any] | None = None
self._power_ranking_achievements_button: bui.Widget | None = None self._power_ranking_achievements_button: bui.Widget | None = None
self._pro_mult_button: bui.Widget | None = None self._up_to_date_bonus_button: bui.Widget | None = None
self._power_ranking_trophies_button: bui.Widget | None = None self._power_ranking_trophies_button: bui.Widget | None = None
self._league_title_text: bui.Widget | None = None self._league_title_text: bui.Widget | None = None
self._league_text: bui.Widget | None = None self._league_text: bui.Widget | None = None
@ -160,13 +160,14 @@ class LeagueRankWindow(bui.MainWindow):
self._requested_season: str | None = None self._requested_season: str | None = None
self._season: str | None = None self._season: str | None = None
# take note of our account state; we'll refresh later if this changes # Take note of our account state; we'll refresh later if this
# changes.
self._account_state = plus.get_v1_account_state() self._account_state = plus.get_v1_account_state()
self._refresh() self._refresh()
self._restore_state() self._restore_state()
# if we've got cached power-ranking data already, display it # If we've got cached power-ranking data already, display it.
assert bui.app.classic is not None assert bui.app.classic is not None
info = bui.app.classic.accounts.get_cached_league_rank_data() info = bui.app.classic.accounts.get_cached_league_rank_data()
if info is not None: if info is not None:
@ -239,14 +240,14 @@ class LeagueRankWindow(bui.MainWindow):
origin_widget=self._activity_mult_button, origin_widget=self._activity_mult_button,
) )
def _on_pro_mult_press(self) -> None: def _on_up_to_date_bonus_press(self) -> None:
from bauiv1lib import confirm from bauiv1lib import confirm
plus = bui.app.plus plus = bui.app.plus
assert plus is not None assert plus is not None
txt = bui.Lstr( txt = bui.Lstr(
resource='coopSelectWindow.proMultInfoText', resource='league.upToDateBonusDescriptionText',
subs=[ subs=[
( (
'${PERCENT}', '${PERCENT}',
@ -256,13 +257,6 @@ class LeagueRankWindow(bui.MainWindow):
) )
), ),
), ),
(
'${PRO}',
bui.Lstr(
resource='store.bombSquadProNameText',
subs=[('${APP_NAME}', bui.Lstr(resource='titleText'))],
),
),
], ],
) )
confirm.ConfirmWindow( confirm.ConfirmWindow(
@ -270,7 +264,7 @@ class LeagueRankWindow(bui.MainWindow):
cancel_button=False, cancel_button=False,
width=460, width=460,
height=130, height=130,
origin_widget=self._pro_mult_button, origin_widget=self._up_to_date_bonus_button,
) )
def _on_trophies_press(self) -> None: def _on_trophies_press(self) -> None:
@ -292,7 +286,8 @@ class LeagueRankWindow(bui.MainWindow):
) -> None: ) -> None:
self._doing_power_ranking_query = False self._doing_power_ranking_query = False
# Important: *only* cache this if we requested the current season. # Important: *only* cache this if we requested the current
# season.
if data is not None and data.get('s', None) is None: if data is not None and data.get('s', None) is None:
assert bui.app.classic is not None assert bui.app.classic is not None
bui.app.classic.accounts.cache_league_rank_data(data) bui.app.classic.accounts.cache_league_rank_data(data)
@ -321,8 +316,8 @@ class LeagueRankWindow(bui.MainWindow):
if not self._doing_power_ranking_query: if not self._doing_power_ranking_query:
self._last_power_ranking_query_time = None self._last_power_ranking_query_time = None
# Send off a new power-ranking query if its been long enough or our # Send off a new power-ranking query if its been long enough or
# requested season has changed or whatnot. # our requested season has changed or whatnot.
if not self._doing_power_ranking_query and ( if not self._doing_power_ranking_query and (
self._last_power_ranking_query_time is None self._last_power_ranking_query_time is None
or cur_time - self._last_power_ranking_query_time > 30.0 or cur_time - self._last_power_ranking_query_time > 30.0
@ -354,7 +349,7 @@ class LeagueRankWindow(bui.MainWindow):
plus = bui.app.plus plus = bui.app.plus
assert plus is not None assert plus is not None
# (re)create the sub-container if need be.. # (Re)create the sub-container if need be.
if self._subcontainer is not None: if self._subcontainer is not None:
self._subcontainer.delete() self._subcontainer.delete()
self._subcontainer = bui.containerwidget( self._subcontainer = bui.containerwidget(
@ -497,24 +492,26 @@ class LeagueRankWindow(bui.MainWindow):
else: else:
self._activity_mult_button = None self._activity_mult_button = None
self._pro_mult_button = bui.buttonwidget( self._up_to_date_bonus_button = bui.buttonwidget(
parent=w_parent, parent=w_parent,
position=(self._xoffs + h2 - 60, v2 + 10), position=(self._xoffs + h2 - 60, v2 + 10),
size=(200, 60), size=(200, 60),
icon=bui.gettexture('logo'), icon=bui.gettexture('logo'),
icon_color=(0.3, 0, 0.3), icon_color=(0.3, 0, 0.3),
label=bui.Lstr( # label='Up-To-Date Bonus',
resource='store.bombSquadProNameText', label=bui.Lstr(resource='league.upToDateBonusText'),
subs=[('${APP_NAME}', bui.Lstr(resource='titleText'))], # label=bui.Lstr(
), # resource='store.bombSquadProNameText',
# subs=[('${APP_NAME}', bui.Lstr(resource='titleText'))],
# ),
autoselect=True, autoselect=True,
on_activate_call=bui.WeakCall(self._on_pro_mult_press), on_activate_call=bui.WeakCall(self._on_up_to_date_bonus_press),
left_widget=self._back_button, left_widget=self._back_button,
color=(0.5, 0.5, 0.6), color=(0.5, 0.5, 0.6),
textcolor=(0.7, 0.7, 0.8), textcolor=(0.7, 0.7, 0.8),
) )
self._pro_mult_text = bui.textwidget( self._up_to_date_bonus_text = bui.textwidget(
parent=w_parent, parent=w_parent,
position=(self._xoffs + h2 + h_offs_tally, v2 + 40), position=(self._xoffs + h2 + h_offs_tally, v2 + 40),
size=(0, 0), size=(0, 0),
@ -712,8 +709,6 @@ class LeagueRankWindow(bui.MainWindow):
assert plus is not None assert plus is not None
our_login_id = plus.get_v1_account_public_login_id() our_login_id = plus.get_v1_account_public_login_id()
# our_login_id = _bs.get_account_misc_read_val_2(
# 'resolvedAccountID', None)
if not self._can_do_more_button or our_login_id is None: if not self._can_do_more_button or our_login_id is None:
bui.getsound('error').play() bui.getsound('error').play()
bui.screenmessage( bui.screenmessage(
@ -767,8 +762,8 @@ class LeagueRankWindow(bui.MainWindow):
status_text = num_text.replace('${NUMBER}', str(data['rank'])) status_text = num_text.replace('${NUMBER}', str(data['rank']))
elif data is not None: elif data is not None:
try: try:
# handle old seasons where we didn't wind up ranked # Handle old seasons where we didn't wind up ranked at
# at the end.. # the end.
if not data['scores']: if not data['scores']:
status_text = ( status_text = (
self._rdict.powerRankingFinishedSeasonUnrankedText self._rdict.powerRankingFinishedSeasonUnrankedText
@ -811,7 +806,7 @@ class LeagueRankWindow(bui.MainWindow):
did_first = False did_first = False
self._is_current_season = False self._is_current_season = False
if data is not None: if data is not None:
# build our list of seasons we have available # Build our list of seasons we have available.
for ssn in data['sl']: for ssn in data['sl']:
season_choices.append(ssn) season_choices.append(ssn)
if ssn != 'a' and not did_first: if ssn != 'a' and not did_first:
@ -822,8 +817,9 @@ class LeagueRankWindow(bui.MainWindow):
) )
) )
did_first = True did_first = True
# if we either did not specify a season or specified the
# first, we're looking at the current.. # If we either did not specify a season or specified
# the first, we're looking at the current.
if self._season in [ssn, None]: if self._season in [ssn, None]:
self._is_current_season = True self._is_current_season = True
elif ssn == 'a': elif ssn == 'a':
@ -1007,7 +1003,12 @@ class LeagueRankWindow(bui.MainWindow):
text='x ' + ('%.2f' % data['act']), text='x ' + ('%.2f' % data['act']),
) )
have_pro = False if data is None else data['p'] # This used to be a bonus for 'BombSquad Pro' holders, but since
# we're transitioning away from that it is now a bonus for
# everyone running a recent-ish version of the game.
# have_pro = False if data is None else data['p']
have_up_to_date_bonus = data is not None
pro_mult = ( pro_mult = (
1.0 1.0
+ float( + float(
@ -1015,19 +1016,20 @@ class LeagueRankWindow(bui.MainWindow):
) )
* 0.01 * 0.01
) )
# pylint: disable=consider-using-f-string
bui.textwidget( bui.textwidget(
edit=self._pro_mult_text, edit=self._up_to_date_bonus_text,
text=( text=(
' -' ' -'
if (data is None or not have_pro) if (data is None or not have_up_to_date_bonus)
else 'x ' + ('%.2f' % pro_mult) else f'x {pro_mult:.2f}'
), ),
) )
bui.buttonwidget( bui.buttonwidget(
edit=self._pro_mult_button, edit=self._up_to_date_bonus_button,
textcolor=(0.7, 0.7, 0.8, (1.0 if have_pro else 0.5)), textcolor=(0.7, 0.7, 0.8, (1.0 if have_up_to_date_bonus else 0.5)),
icon_color=(0.5, 0, 0.5) if have_pro else (0.5, 0, 0.5, 0.2), icon_color=(
(0.5, 0, 0.5) if have_up_to_date_bonus else (0.5, 0, 0.5, 0.2)
),
) )
bui.buttonwidget( bui.buttonwidget(
edit=self._power_ranking_achievements_button, edit=self._power_ranking_achievements_button,
@ -1035,8 +1037,8 @@ class LeagueRankWindow(bui.MainWindow):
+ bui.Lstr(resource='achievementsText').evaluate(), + bui.Lstr(resource='achievementsText').evaluate(),
) )
# for the achievement value, use the number they gave us for # For the achievement value, use the number they gave us for
# non-current seasons; otherwise calc our own # non-current seasons; otherwise calc our own.
total_ach_value = 0 total_ach_value = 0
for ach in bui.app.classic.ach.achievements: for ach in bui.app.classic.ach.achievements:
if ach.complete: if ach.complete:
@ -1168,7 +1170,7 @@ class LeagueRankWindow(bui.MainWindow):
def _on_season_change(self, value: str) -> None: def _on_season_change(self, value: str) -> None:
self._requested_season = value self._requested_season = value
self._last_power_ranking_query_time = None # make sure we update asap self._last_power_ranking_query_time = None # Update asap.
self._update(show=True) self._update(show=True)
def _save_state(self) -> None: def _save_state(self) -> None:

View File

@ -112,9 +112,22 @@ class PartyWindow(bui.Window):
self._empty_str = bui.textwidget( self._empty_str = bui.textwidget(
parent=self._root_widget, parent=self._root_widget,
scale=0.75, scale=0.6,
size=(0, 0), size=(0, 0),
position=(self._width * 0.5, self._height - 65), # color=(0.5, 1.0, 0.5),
shadow=0.3,
position=(self._width * 0.5, self._height - 57),
maxwidth=self._width * 0.85,
h_align='center',
v_align='center',
)
self._empty_str_2 = bui.textwidget(
parent=self._root_widget,
scale=0.5,
size=(0, 0),
color=(0.5, 1.0, 0.5),
shadow=0.1,
position=(self._width * 0.5, self._height - 75),
maxwidth=self._width * 0.85, maxwidth=self._width * 0.85,
h_align='center', h_align='center',
v_align='center', v_align='center',
@ -297,6 +310,10 @@ class PartyWindow(bui.Window):
edit=self._empty_str, edit=self._empty_str,
text=bui.Lstr(resource=f'{self._r}.emptyText'), text=bui.Lstr(resource=f'{self._r}.emptyText'),
) )
bui.textwidget(
edit=self._empty_str_2,
text=bui.Lstr(resource='gatherWindow.descriptionShortText'),
)
bui.scrollwidget( bui.scrollwidget(
edit=self._scrollwidget, edit=self._scrollwidget,
size=( size=(
@ -437,6 +454,7 @@ class PartyWindow(bui.Window):
) )
) )
bui.textwidget(edit=self._empty_str, text='') bui.textwidget(edit=self._empty_str, text='')
bui.textwidget(edit=self._empty_str_2, text='')
bui.scrollwidget( bui.scrollwidget(
edit=self._scrollwidget, edit=self._scrollwidget,
size=( size=(

View File

@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
namespace ballistica { namespace ballistica {
// These are set automatically via script; don't modify them here. // These are set automatically via script; don't modify them here.
const int kEngineBuildNumber = 22200; const int kEngineBuildNumber = 22202;
const char* kEngineVersion = "1.7.37"; const char* kEngineVersion = "1.7.37";
const int kEngineApiVersion = 9; const int kEngineApiVersion = 9;