gold pass now properly grants all pro features

This commit is contained in:
Eric Froemling 2024-12-30 15:18:51 -08:00
parent 368d63b851
commit 88e2affed1
No known key found for this signature in database
10 changed files with 70 additions and 49 deletions

56
.efrocachemap generated
View File

@ -421,7 +421,7 @@
"build/assets/ba_data/audio/zoeOw.ogg": "b2d705c31c9dcc1efdc71394764c3beb",
"build/assets/ba_data/audio/zoePickup01.ogg": "e9366dc2d2b8ab8b0c4e2c14c02d0789",
"build/assets/ba_data/audio/zoeScream01.ogg": "903e0e45ee9b3373e9d9ce20c814374e",
"build/assets/ba_data/data/langdata.json": "3775cd8b6f05c2205b7653302308acf9",
"build/assets/ba_data/data/langdata.json": "ce2f76ab5f36cbc0212d1b3c424eb954",
"build/assets/ba_data/data/languages/arabic.json": "3c22e7b6d7b09a812a2e28b35c9e9241",
"build/assets/ba_data/data/languages/belarussian.json": "0b60a9d4496d1213c2d0b647d346ce30",
"build/assets/ba_data/data/languages/chinese.json": "fc45d2838b834889c06920ae7c2102fa",
@ -430,7 +430,7 @@
"build/assets/ba_data/data/languages/czech.json": "d18b7d1c6bf51fc81af4084ef0e69e3e",
"build/assets/ba_data/data/languages/danish.json": "8e57db30c5250df2abff14a822f83ea7",
"build/assets/ba_data/data/languages/dutch.json": "f4e1e8e9231cda9d1bcc7e87a7f8821e",
"build/assets/ba_data/data/languages/english.json": "131508c56b563b9552bee5535f107b5a",
"build/assets/ba_data/data/languages/english.json": "b5917c3b975155e35fedb655dbd7568c",
"build/assets/ba_data/data/languages/esperanto.json": "0e397cfa5f3fb8cef5f4a64f21cda880",
"build/assets/ba_data/data/languages/filipino.json": "3d9269a90a2fee164d0a7513c4f130a3",
"build/assets/ba_data/data/languages/french.json": "6d20655730b1017ef187fd828b91d43c",
@ -443,14 +443,14 @@
"build/assets/ba_data/data/languages/italian.json": "eabad2faba952c426876bc07e1490d09",
"build/assets/ba_data/data/languages/korean.json": "4e3524327a0174250aff5e1ef4c0c597",
"build/assets/ba_data/data/languages/malay.json": "0212e18e54efa202c17505376e5b82fb",
"build/assets/ba_data/data/languages/persian.json": "2584895475fe62b3fe49a5ea5e69b4b1",
"build/assets/ba_data/data/languages/persian.json": "859a60de6226fdf9fc24b68b7f6782b6",
"build/assets/ba_data/data/languages/piratespeak.json": "7c7e3b72b87c1bcd5b04c9f64d912f0c",
"build/assets/ba_data/data/languages/polish.json": "941eb816c7db9e04d6a3b8f28a64e2e8",
"build/assets/ba_data/data/languages/portuguese.json": "b4463a05d65515f6812e1177c60ac666",
"build/assets/ba_data/data/languages/romanian.json": "5ae206fe0b71c4015b02b86da8931c8f",
"build/assets/ba_data/data/languages/russian.json": "fc64ed6b6356ea11385ee5c20748425a",
"build/assets/ba_data/data/languages/serbian.json": "623fa4129a1154c2f32ed7867e56ff6a",
"build/assets/ba_data/data/languages/slovak.json": "3c08c748c96c71bd9e1d7291fb8817b6",
"build/assets/ba_data/data/languages/slovak.json": "c11c29708b3742cdc2a92b4fa0d6d29f",
"build/assets/ba_data/data/languages/spanish.json": "499b464318a8c9d1fb271cf480862b57",
"build/assets/ba_data/data/languages/swedish.json": "3b179e7333183c70adb0811246b09959",
"build/assets/ba_data/data/languages/tamil.json": "ead39b864228696a9b0d19344bc4b5ec",
@ -4103,22 +4103,22 @@
"build/assets/windows/Win32/ucrtbased.dll": "bfd1180c269d3950b76f35a63655e9e1",
"build/assets/windows/Win32/vc_redist.x86.exe": "15a5f1f876503885adbdf5b3989b3718",
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "13233366609a24c56012f54ded7aefc6",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "9e3b238711c4c3589a307fdc4058ba7e",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "67c4c290e7b05f8b0bfb4f9be87dfa09",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "9fbba3a76f2fc50b9951e6f3f036a32b",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "c156541560f67ea45207d18561aa96a4",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "523946201fa68a8761abd8012888a1ee",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "1e164a6146131c57bdd80650c7cd01eb",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "547282ad972d2659c7adf3cdcc0fe38c",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "f8f206e99e6515d857d03a6756432916",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "1948fefc1a65e0c09229229058d7a398",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "397cdcd79c10c35f13bda51cbf0431b8",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "c1a395b445754161e96040c0a3432471",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "1c4e960c1b621d4376c3ca0f8e876aad",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "60eea6534bc325bef60f2de3de497ebb",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "67e01108249a1ae8ec6ae106c684febf",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "2dbf2871814d9ae25d38ad0ed8c44dc5",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "5bf2fb190bf3a50a89f960334df4d305",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "ed8593ca6f1ff5b9e2531e050c709788",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "172c306c8fc50fe4d688636772baa455",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "e9a020f503a89ccbbbe45e0d5b29b2f1",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "d9be694c1b7aba9796a17f81d7abccc8",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "9cb37831a43d787f34f587fbdfccf0c2",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "b73f382527c980e6187008a4fa7c3d84",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "4501a7c845060a3754dd2b7b9e937088",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "244be2eeecafbac57442bc88d5c35172",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "d94961ab202eff037b0aca4305a646a1",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "224fb1f5cb77ce62fe755e8d6797cb18",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "429a0a6b752cbe48cca155228f791916",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "15003e60d7f2633cd56766bc0af31b4e",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "86077c01bedaf0b9d4b727df1ffad14e",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "773eb771722c4fd86394ef1160db0a5a",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "ec8fa3c1077167307ebe8b5814ad8f9a",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "33a0ae6f1ea5a0b0c60055ce01478488",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "aad882eaf2230b89973e2cf4f13c9759",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "33a0ae6f1ea5a0b0c60055ce01478488",
@ -4131,14 +4131,14 @@
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "ae4e3f563892f6b9311c4b7284f28c11",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "01dab862a43d9e7c4ee4e49212442d42",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "ae4e3f563892f6b9311c4b7284f28c11",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "d24d48e0b6d35d91350b707b74dd95f5",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "c946a1405b62469889c1d596b2021753",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "92431ded412435040f3c0be770753060",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "72e4f88ff70048a2a49c907680c34121",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "0a68d461e96190865ce3457ec7c38e22",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "f8182ea0ad5537d4cf968a0b07594cff",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "996197f97e10bcea0bed1e88e8e75bdd",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "42461cf73d82008266892bf79f0634df",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "eee9e6778b27ea4722efb65b573673a6",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "18fdfa5978141a5b2f3ce553117f741e",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "2296e1d8cbec0cc429a68cde4949b8b7",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "a35f0e217ab1a526852f96dba1b469cb",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "91f829af919fd293012d9a1beccea706",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "c323032fb0f5ba9e85e96b86d34919ba",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "71207aad7fb9de8eb6c77525c402b904",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "2d17014f6f47829e1dab77cc371f125c",
"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",

View File

@ -1,4 +1,4 @@
### 1.7.37 (build 22150, api 9, 2024-12-28)
### 1.7.37 (build 22152, api 9, 2024-12-30)
- 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.

View File

@ -2,7 +2,7 @@ cpplint==2.0.0
dmgbuild==1.6.2
filelock==3.16.1
furo==2024.8.6
mypy==1.14.0
mypy==1.14.1
pbxproj==4.2.1
pdoc==15.0.1
pur==7.3.3

View File

@ -230,13 +230,12 @@ class AccountV1Subsystem:
if plus is None:
return False
# Check our tickets-based pro upgrade and our two real-IAP based
# upgrades. Also always unlock this stuff in ballistica-core builds.
# Check various server-side purchases that mean we have pro.
return bool(
plus.get_v1_account_product_purchased('upgrades.pro')
plus.get_v1_account_product_purchased('gold_pass')
or plus.get_v1_account_product_purchased('upgrades.pro')
or plus.get_v1_account_product_purchased('static.pro')
or plus.get_v1_account_product_purchased('static.pro_sale')
or 'ballistica' + 'kit' == babase.appname()
)
def have_pro_options(self) -> bool:

View File

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

View File

@ -148,7 +148,7 @@ class ChestWindow(bui.MainWindow):
return
if response.chest is None:
self._error('Would show general info about chests.')
self._show_about_chest_slots()
return
self.show_chest_actions(response.chest)
@ -310,6 +310,14 @@ class ChestWindow(bui.MainWindow):
self._reset()
bui.textwidget(edit=self._infotext, text=msg, color=(1, 0, 0))
def _show_about_chest_slots(self) -> None:
self._reset()
msg = (
'This empty slot can hold a treasure chest.\n'
'Treasure chests are earned through gameplay.'
)
bui.textwidget(edit=self._infotext, text=msg, color=(1, 1, 1))
@override
def get_main_window_state(self) -> bui.MainWindowState:
# Support recreating our window for back/refresh purposes.

View File

@ -57,20 +57,20 @@ class ResourceTypeInfoWindow(PopupWindow):
if resource_type == 'tickets':
rdesc = (
'Use tickets to unlock characters, maps,\n'
'minigames, and more in the store.\n'
'Tickets can be used to unlock characters,\n'
'maps, minigames, and more in the store.\n'
'\n'
'Earn tickets by completing achievements or\n'
'by opening chests won in the game.'
'Earn tickets by completing achievements\n'
'or by opening chests won in the game.'
)
texname = 'tickets'
elif resource_type == 'tokens':
rdesc = (
'Tokens can be used to speed up chest unlocks\n'
'and skip other waits.\n'
'Tokens have various uses in the game such as\n'
'speeding up chest unlocks.\n'
'\n'
'You can buy packs of tokens or buy a Gold Pass\n'
'to get infinite tokens forever.\n'
'You can buy packs of tokens or you can buy a\n'
'Gold Pass to get unlimited tokens.\n'
)
texname = 'coin'
elif resource_type == 'trophies':

View File

@ -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 = 22150;
const int kEngineBuildNumber = 22152;
const char* kEngineVersion = "1.7.37";
const int kEngineApiVersion = 9;

View File

@ -1396,22 +1396,31 @@ void RootWidget::SetTicketsMeterText(const std::string& val) {
void RootWidget::SetTokensMeterText(const std::string& val, bool gold_pass) {
assert(tokens_meter_text_);
assert(get_tokens_button_);
if (gold_pass) {
gold_pass_ = gold_pass;
if (gold_pass_) {
get_tokens_button_->force_hide = true;
// Use the infinity symbol if we have full unicode support.
tokens_meter_text_->widget->SetText(
g_buildconfig.enable_os_font_rendering() ? "\xE2\x88\x9E" : "inf");
tokens_meter_text_->widget->set_color(1.0f, 0.6f, 0.1f, 0.6f);
} else {
get_tokens_button_->force_hide = false;
tokens_meter_text_->widget->SetText(val);
tokens_meter_text_->widget->set_color(1.0f, 1.0f, 1.0f, 1.0f);
}
UpdateTokensMeterTextColor_();
// May need to animate in/out.
child_widgets_dirty_ = true;
}
void RootWidget::UpdateTokensMeterTextColor_() {
auto oval{have_live_values_ ? 1.0f : 0.4f};
if (gold_pass_ && have_live_values_) {
tokens_meter_text_->widget->set_color(1.0f, 0.6f, 0.1f, 0.6f);
} else {
tokens_meter_text_->widget->set_color(1.0f, 1.0f, 1.0f, oval);
}
}
void RootWidget::SetLeagueRankText(const std::string& val) {
assert(league_rank_text_);
league_rank_text_->widget->SetText(val);
@ -1454,6 +1463,7 @@ void RootWidget::SetXPText(const std::string& val) {
}
void RootWidget::SetHaveLiveValues(bool have_live_values) {
have_live_values_ = have_live_values;
// auto cval{have_live_values ? 1.0f : 0.4f};
auto oval{have_live_values ? 1.0f : 0.4f};
auto oval2{have_live_values ? 1.0f : 0.4f};
@ -1466,7 +1476,8 @@ void RootWidget::SetHaveLiveValues(bool have_live_values) {
assert(tokens_meter_text_);
assert(tokens_meter_icon_);
tokens_meter_text_->widget->set_color(1.0f, 1.0f, 1.0f, oval);
UpdateTokensMeterTextColor_();
// tokens_meter_text_->widget->set_color(1.0f, 1.0f, 1.0f, oval);
// tokens_meter_icon_->widget->set_color(cval, cval, cval);
tokens_meter_icon_->widget->set_opacity(oval2);

View File

@ -73,6 +73,7 @@ class RootWidget : public ContainerWidget {
void StepChildWidgets_(float dt);
void AddMeter_(MeterType_ type, float h_align, float r, float g, float b,
bool plus, const std::string& s);
void UpdateTokensMeterTextColor_();
std::list<Button_> buttons_;
std::list<Text_> texts_;
@ -121,6 +122,8 @@ class RootWidget : public ContainerWidget {
ToolbarVisibility toolbar_visibility_{ToolbarVisibility::kInGame};
bool child_widgets_dirty_{true};
bool in_main_menu_{};
bool gold_pass_{};
bool have_live_values_{};
};
} // namespace ballistica::ui_v1