From 8e9e7563cc60a47fe8a3496d847f189146d726ff Mon Sep 17 00:00:00 2001 From: Eric Froemling Date: Fri, 31 Jan 2025 17:02:23 -0800 Subject: [PATCH] added warning that chests may be lost if playing with no chest slots open. --- .efrocachemap | 48 +++++++++---------- CHANGELOG.md | 2 +- .../ba_data/python/baclassic/_appmode.py | 7 +++ .../ba_data/python/baclassic/_appsubsystem.py | 1 + src/assets/ba_data/python/baenv.py | 2 +- .../ba_data/python/bauiv1lib/coop/browser.py | 40 ++++++++++------ src/ballistica/shared/ballistica.cc | 2 +- 7 files changed, 60 insertions(+), 42 deletions(-) diff --git a/.efrocachemap b/.efrocachemap index 2ccaf051..54e9fe44 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -4171,22 +4171,22 @@ "build/assets/windows/Win32/pythonw.exe": "60f972a154dd6af1b4a67a23bcd89a92", "build/assets/windows/Win32/pythonw_d.exe": "440ba78327698a2706fe7a0eb358dfe8", "build/assets/windows/Win32/vc_redist.x86.exe": "91f13ae4b9f4dee9430a9d9b0c8b2afa", - "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "2c6cb9b1a60721c6e3bc49d51324b264", - "build/prefab/full/linux_arm64_gui/release/ballisticakit": "3f40c4809c3eed59cf398f75552f93f2", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "e3dbbf5683e49a5829c5ed97589a441c", - "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "512c51c4e2d87d18cfbef728c513b599", - "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "9e3431cd1f17a29cee173035b924c91a", - "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "79487768b9e12f4399e389204c816035", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "7a9b37a71f7e6e16ff86ca0ccfb70006", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "15aca3bfda739d6b59e439bb8b5abd49", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "f591aa149a7641efaf13f31ca5c13a3f", - "build/prefab/full/mac_arm64_gui/release/ballisticakit": "5ee15c691e032e9b9515436b1a8a3381", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "08d9cc8785012a56d6998f5e1bedb395", - "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "6eae82a42b6380321af37b6ad56dbd58", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "8a4e8dedfd25672c8edd8d1b3fa95983", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "e473df2b31df114791c5354d036874fb", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "cd9c8f057578e77633cd1bb005101ed6", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "f8ae613ced94412159b569c41a0b04c2", + "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "e9b65e2ecc15bb4c6657c0a684eba1d9", + "build/prefab/full/linux_arm64_gui/release/ballisticakit": "a254053e7f58e3da2dbb4d45c2ef310f", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "ccc36d009bc0fd7548b31ecb3c591025", + "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "b9a9812927a25bc9f2d58f2aa14dd073", + "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "095a15043434cfa6bca1c2469f395f0b", + "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "7a5ed0add2617f6a7c1322fffe577f9f", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "02cc384ae2c3b30e7fe52f9eaa28ae2d", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "b70d7556c1a73e79ee07e40c0ff8fa1b", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "79ca4ab042690182c69333d93b4e6d4a", + "build/prefab/full/mac_arm64_gui/release/ballisticakit": "8a4deacb894a249cc1bc08cab046c511", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "90914d56ef9fe32bbbe4e9882a205b7c", + "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "f76dbcf7ff4095aeda7e34238f1ef2bc", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "60c8eea0253d2617b074879326ddf1d9", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "9083b099418c54cb2187bef6891df2e8", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "dea224a60ef7c246a4f0951689f2624d", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "f34e9ec8f91cfca5b3ff4190b2fb54e1", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "5c7b118a1780cbf24c8b4bf6fd30ddb0", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "69a28ff5f0d1fb79a012449c90e3c0d0", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "5c7b118a1780cbf24c8b4bf6fd30ddb0", @@ -4199,14 +4199,14 @@ "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "593606fabbdd503bab555d49b7963ad1", "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "07143cfbe795a2cbaa47a09daf1261b3", "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "593606fabbdd503bab555d49b7963ad1", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "acac11988d2398cf81dfff6f71b996b8", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "6064f56716c207ccfb92e1f1373ae27f", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "e5aae9b24f08f986addfbf3abab00753", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "d739db63385da53768343959c6c358aa", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "c30bd265c24d338a76a834b3eaf5dcda", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "739279114a1e77ca06990939bf6ad09e", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "ece94e57b0ddd1722c543ede09ed3973", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "1109fef5c7a8f3c30847a002f5447f51", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "f737f347dac174866c6ec2a5f16dc029", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "fa5d0866d5951bfd5965f020fad5deef", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "a1ccea4ec4184ebb805c8643708c8a1b", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "c94ed3fe1006e9d9142d4020e416ebfa", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "a9c4f66ee4f5c95f0d738688a846c48e", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "5794e420e44048078ee3e641468d662c", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "34034aa12539cf62b130d7d9e035d5aa", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "30636d0ebb461f97fe2900a3e3ad45d7", "src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c", "src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad", "src/ballistica/base/mgen/pyembed/binding_base.inc": "06042d31df0ff9af96b99477162e2a91", diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c234679..ae90abfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.7.37 (build 22261, api 9, 2025-01-31) +### 1.7.37 (build 22262, api 9, 2025-01-31) - 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 touch UI stuff at all you can simply bump your api version and call it a day. diff --git a/src/assets/ba_data/python/baclassic/_appmode.py b/src/assets/ba_data/python/baclassic/_appmode.py index 879bce66..50fa3335 100644 --- a/src/assets/ba_data/python/baclassic/_appmode.py +++ b/src/assets/ba_data/python/baclassic/_appmode.py @@ -199,6 +199,7 @@ class ClassicAppMode(babase.AppMode): if account is None: classic.gold_pass = False + classic.chest_dock_full = False classic.remove_ads = False self._account_data_sub = None _baclassic.set_root_ui_account_values( @@ -274,6 +275,12 @@ class ClassicAppMode(babase.AppMode): assert classic is not None classic.remove_ads = val.remove_ads classic.gold_pass = val.gold_pass + classic.chest_dock_full = ( + chest0 is not None + and chest1 is not None + and chest2 is not None + and chest3 is not None + ) _baclassic.set_root_ui_account_values( tickets=val.tickets, diff --git a/src/assets/ba_data/python/baclassic/_appsubsystem.py b/src/assets/ba_data/python/baclassic/_appsubsystem.py index 6a4d0785..58794962 100644 --- a/src/assets/ba_data/python/baclassic/_appsubsystem.py +++ b/src/assets/ba_data/python/baclassic/_appsubsystem.py @@ -77,6 +77,7 @@ class ClassicAppSubsystem(babase.AppSubsystem): # Classic-specific account state. self.remove_ads = False self.gold_pass = False + self.chest_dock_full = False # Main Menu. self.main_menu_did_initial_transition = False diff --git a/src/assets/ba_data/python/baenv.py b/src/assets/ba_data/python/baenv.py index 44c0f6fe..47414a2d 100644 --- a/src/assets/ba_data/python/baenv.py +++ b/src/assets/ba_data/python/baenv.py @@ -53,7 +53,7 @@ if TYPE_CHECKING: # Build number and version of the ballistica binary we expect to be # using. -TARGET_BALLISTICA_BUILD = 22261 +TARGET_BALLISTICA_BUILD = 22262 TARGET_BALLISTICA_VERSION = '1.7.37' diff --git a/src/assets/ba_data/python/bauiv1lib/coop/browser.py b/src/assets/ba_data/python/bauiv1lib/coop/browser.py index f3b0ddb1..22411f74 100644 --- a/src/assets/ba_data/python/bauiv1lib/coop/browser.py +++ b/src/assets/ba_data/python/bauiv1lib/coop/browser.py @@ -9,6 +9,7 @@ from __future__ import annotations import logging from typing import TYPE_CHECKING, override + import bauiv1 as bui if TYPE_CHECKING: @@ -1001,6 +1002,30 @@ class CoopBrowserWindow(bui.MainWindow): def run_game( self, game: str, origin_widget: bui.Widget | None = None + ) -> None: + """Run the provided game.""" + from efro.util import strict_partial + from bauiv1lib.confirm import ConfirmWindow + + classic = bui.app.classic + assert classic is not None + + if classic.chest_dock_full: + ConfirmWindow( + bui.Lstr(resource='chests.slotsFullWarningText'), + width=550, + height=140, + ok_text=bui.Lstr(resource='continueText'), + origin_widget=origin_widget, + action=strict_partial( + self._run_game, game=game, origin_widget=origin_widget + ), + ) + else: + self._run_game(game=game, origin_widget=origin_widget) + + def _run_game( + self, game: str, origin_widget: bui.Widget | None = None ) -> None: """Run the provided game.""" # pylint: disable=cyclic-import @@ -1040,21 +1065,6 @@ class CoopBrowserWindow(bui.MainWindow): ) return - # if required_purchases and not all( - # plus.get_v1_account_product_purchased(p) - # for p in required_purchases - # ): - # if plus.get_v1_account_state() != 'signed_in': - # show_sign_in_prompt() - # else: - # # Hmm just ask about the first I guess.. They can pop - # # this window back up to the next if they purchase the - # # first. - # PurchaseWindow( - # items=[required_purchases[0]], origin_widget=origin_widget - # ) - # return - self._save_state() if bui.app.classic.launch_coop_game(game, args=args): diff --git a/src/ballistica/shared/ballistica.cc b/src/ballistica/shared/ballistica.cc index 2c11715b..47cd4004 100644 --- a/src/ballistica/shared/ballistica.cc +++ b/src/ballistica/shared/ballistica.cc @@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int { namespace ballistica { // These are set automatically via script; don't modify them here. -const int kEngineBuildNumber = 22261; +const int kEngineBuildNumber = 22262; const char* kEngineVersion = "1.7.37"; const int kEngineApiVersion = 9;