mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-19 21:37:57 +08:00
gold pass now properly grants all pro features
This commit is contained in:
parent
368d63b851
commit
88e2affed1
56
.efrocachemap
generated
56
.efrocachemap
generated
@ -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",
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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'
|
||||
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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':
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user