diff --git a/.efrocachemap b/.efrocachemap index ff19d34d..7553daf9 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -4174,42 +4174,42 @@ "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": "ce8f860eca1987d08245184f86996182", - "build/prefab/full/linux_arm64_gui/release/ballisticakit": "50d39660fa219c8d6cf2efb61685a61a", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "6ba96618dd57e6937abe9d1919dfa572", - "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "cecc7cee479a3d34f9b2fc9e9d9ded23", - "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "e62e0586da50386f4f363ec018a5db5e", - "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "60c86684724816e72fe123a4181e9b5e", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "652e6dad52ffa1c7166ffad2da52e5cd", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "7a54b3311d70edc58f6f2953df088e92", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "1edb07436376dac497f1d298e26f9e96", - "build/prefab/full/mac_arm64_gui/release/ballisticakit": "02967dc5ba24c1b85ff0626934c3e1ae", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "4c93356e4f8ac89ebb53dbc20b09d22f", - "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "f65ae7e22fba795c6368fd4d652eeff1", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "864f28591b3c789c432e2bd6681b4879", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "2199c997e096551c6aea48850287c9ab", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "1a9a6969c3fe39f2699f0135c348a250", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "b8d883fcf9549006ad1691ac7ada47d2", - "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_server/debug/libballisticaplus.a": "cbacac5a846cf8a0f6db760aaddcd13a", - "build/prefab/lib/linux_arm64_server/release/libballisticaplus.a": "3d16bac10d8f15bac7fe20e3a927b275", - "build/prefab/lib/linux_x86_64_gui/debug/libballisticaplus.a": "88251dd5c8428482c55e7c109a600ad8", - "build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "7f7c396ca028d265bc3eae4433a1a102", - "build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "88251dd5c8428482c55e7c109a600ad8", - "build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "7f7c396ca028d265bc3eae4433a1a102", - "build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "6121591b94d920ee541194b65d93958a", - "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/release/libballisticaplus.a": "7dd182733a34da0ca5f5c97e5cb0b7f0", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "9dc001d05d8de28fa8062832ccc6d781", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "05a0000f747249c7059cfe9d2077d240", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "88e20a1e62b05f10c11dad34de830e2e", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "1d620c706cf30bcbfcd2ea91c6bfb268", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "8f68e596b586c4ce378b8fcf6bde8010", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "4d83e436fc57fed41286c6da16f149b9", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "7a1531f840639d5cb873d01b13ac4f93", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "50694c2f2ae5374eb8212bd9254571a6", + "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "f476e40f3ede3c25330bbb1ea6bf155d", + "build/prefab/full/linux_arm64_gui/release/ballisticakit": "fe0b773103bc46eb5fa47c548f183a84", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "bcfce7dfcec3d5dbba02b074107e7c62", + "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "e14c49f2ea7de894013d8dc08c348029", + "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "aa1dbddf6ea08f85fada1e18dcf14ca8", + "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "749846cc9bcb40d56974f531439ae1aa", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "8ecd4f62295759b1e0030db7e8f7f47e", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "140477033f5c6afbec5b9e69578e91d0", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "f0cd7f0df81de17a78439a2645dd9efc", + "build/prefab/full/mac_arm64_gui/release/ballisticakit": "40b415329a5259398c16f86a41180719", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "7e8cf4f91c975e4b56bd42aba3c2b50a", + "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "06a72d193f6df9a85ea46d4fed48e4a4", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "629c86d69544ce68a163de61294390e9", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "b6e63ea23ffd5d80f05f7590224bb927", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "1f3106422e9b66a5b1da402cbc434d6c", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "bcf8af5bf06a37fc887076841fad8ff3", + "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "7497894d2943b75b6ac830cdba8481af", + "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "273a6f64cac5a233694223b85cd0f22b", + "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "7497894d2943b75b6ac830cdba8481af", + "build/prefab/lib/linux_arm64_server/release/libballisticaplus.a": "273a6f64cac5a233694223b85cd0f22b", + "build/prefab/lib/linux_x86_64_gui/debug/libballisticaplus.a": "6f4d0f923e186f013e20d894ce3cf5f0", + "build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "f9866ec5b496b5565cad36eebb695507", + "build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "6f4d0f923e186f013e20d894ce3cf5f0", + "build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "f9866ec5b496b5565cad36eebb695507", + "build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "55a2b0c2d1db4d70627c901471d05fc7", + "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "7e071962108a8d1727525fb331b70ee4", + "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "55a2b0c2d1db4d70627c901471d05fc7", + "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "7e071962108a8d1727525fb331b70ee4", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "241f03051eb9d75ec538dda179980706", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "9e465dfecd8dd4a1cb14bcdb59895942", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "6cec133582ad66ec1bb2e80f2e7f81cc", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "f6a5f5154d91bb7b34eefefc7d3df7a9", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "584659bd114ad5fb5a6f2f3e10de4d9d", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "0abefcd3c092a30a8b62903bfcd49dc6", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "9cff421668aeba53035369a5620a6c06", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "41d882665240d037aaff8d2c23d37239", "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 176dd843..2ae12d3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.7.37 (build 22204, api 9, 2025-01-18) +### 1.7.37 (build 22207, api 9, 2025-01-18) - 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/_achievement.py b/src/assets/ba_data/python/baclassic/_achievement.py index 908ef6ad..d631ed24 100644 --- a/src/assets/ba_data/python/baclassic/_achievement.py +++ b/src/assets/ba_data/python/baclassic/_achievement.py @@ -6,6 +6,7 @@ from __future__ import annotations import logging from typing import TYPE_CHECKING +# from bacommon.bs import ClassicChestAppearance import babase import bascenev1 import bauiv1 @@ -86,429 +87,311 @@ class AchievementSubsystem: def _init_achievements(self) -> None: """Fill in available achievements.""" - achs = self.achievements - - # 5 - achs.append( - Achievement('In Control', 'achievementInControl', (1, 1, 1), '', 5) - ) - # 15 - achs.append( + self.achievements += [ + Achievement( + 'In Control', + 'achievementInControl', + (1, 1, 1), + '', + ticket_award=5, + ), Achievement( 'Sharing is Caring', 'achievementSharingIsCaring', (1, 1, 1), '', - 15, - ) - ) - # 10 - achs.append( + ticket_award=15, + ), Achievement( - 'Dual Wielding', 'achievementDualWielding', (1, 1, 1), '', 10 - ) - ) - - # 10 - achs.append( + 'Dual Wielding', + 'achievementDualWielding', + (1, 1, 1), + '', + ticket_award=10, + ), Achievement( - 'Free Loader', 'achievementFreeLoader', (1, 1, 1), '', 10 - ) - ) - # 20 - achs.append( + 'Free Loader', + 'achievementFreeLoader', + (1, 1, 1), + '', + ticket_award=10, + ), Achievement( - 'Team Player', 'achievementTeamPlayer', (1, 1, 1), '', 20 - ) - ) - - # 5 - achs.append( + 'Team Player', + 'achievementTeamPlayer', + (1, 1, 1), + '', + ticket_award=20, + ), Achievement( 'Onslaught Training Victory', 'achievementOnslaught', (1, 1, 1), 'Default:Onslaught Training', - 5, - ) - ) - # 5 - achs.append( + ticket_award=5, + ), Achievement( 'Off You Go Then', 'achievementOffYouGo', (1, 1.1, 1.3), 'Default:Onslaught Training', - 5, - ) - ) - # 10 - achs.append( + ticket_award=5, + ), Achievement( 'Boxer', 'achievementBoxer', (1, 0.6, 0.6), 'Default:Onslaught Training', - 10, + ticket_award=10, hard_mode_only=True, - ) - ) - - # 10 - achs.append( + ), Achievement( 'Rookie Onslaught Victory', 'achievementOnslaught', (0.5, 1.4, 0.6), 'Default:Rookie Onslaught', - 10, - ) - ) - # 10 - achs.append( + ticket_award=10, + ), Achievement( 'Mine Games', 'achievementMine', (1, 1, 1.4), 'Default:Rookie Onslaught', - 10, - ) - ) - # 15 - achs.append( + ticket_award=10, + ), Achievement( 'Flawless Victory', 'achievementFlawlessVictory', (1, 1, 1), 'Default:Rookie Onslaught', - 15, + ticket_award=15, hard_mode_only=True, - ) - ) - - # 10 - achs.append( + ), Achievement( 'Rookie Football Victory', 'achievementFootballVictory', (1.0, 1, 0.6), 'Default:Rookie Football', - 10, - ) - ) - # 10 - achs.append( + ticket_award=10, + ), Achievement( 'Super Punch', 'achievementSuperPunch', (1, 1, 1.8), 'Default:Rookie Football', - 10, - ) - ) - # 15 - achs.append( + ticket_award=10, + ), Achievement( 'Rookie Football Shutout', 'achievementFootballShutout', (1, 1, 1), 'Default:Rookie Football', - 15, + ticket_award=15, hard_mode_only=True, - ) - ) - - # 15 - achs.append( + ), Achievement( 'Pro Onslaught Victory', 'achievementOnslaught', (0.3, 1, 2.0), 'Default:Pro Onslaught', - 15, - ) - ) - # 15 - achs.append( + ticket_award=15, + ), Achievement( 'Boom Goes the Dynamite', 'achievementTNT', (1.4, 1.2, 0.8), 'Default:Pro Onslaught', - 15, - ) - ) - # 20 - achs.append( + ticket_award=15, + ), Achievement( 'Pro Boxer', 'achievementBoxer', (2, 2, 0), 'Default:Pro Onslaught', - 20, + ticket_award=20, hard_mode_only=True, - ) - ) - - # 15 - achs.append( + ), Achievement( 'Pro Football Victory', 'achievementFootballVictory', (1.3, 1.3, 2.0), 'Default:Pro Football', - 15, - ) - ) - # 15 - achs.append( + ticket_award=15, + ), Achievement( 'Super Mega Punch', 'achievementSuperPunch', (2, 1, 0.6), 'Default:Pro Football', - 15, - ) - ) - # 20 - achs.append( + ticket_award=15, + ), Achievement( 'Pro Football Shutout', 'achievementFootballShutout', (0.7, 0.7, 2.0), 'Default:Pro Football', - 20, + ticket_award=20, hard_mode_only=True, - ) - ) - - # 15 - achs.append( + ), Achievement( 'Pro Runaround Victory', 'achievementRunaround', (1, 1, 1), 'Default:Pro Runaround', - 15, - ) - ) - # 20 - achs.append( + ticket_award=15, + ), Achievement( 'Precision Bombing', 'achievementCrossHair', (1, 1, 1.3), 'Default:Pro Runaround', - 20, + ticket_award=20, hard_mode_only=True, - ) - ) - # 25 - achs.append( + ), Achievement( 'The Wall', 'achievementWall', (1, 0.7, 0.7), 'Default:Pro Runaround', - 25, + ticket_award=25, hard_mode_only=True, - ) - ) - - # 30 - achs.append( + ), Achievement( 'Uber Onslaught Victory', 'achievementOnslaught', (2, 2, 1), 'Default:Uber Onslaught', - 30, - ) - ) - # 30 - achs.append( + ticket_award=30, + ), Achievement( 'Gold Miner', 'achievementMine', (2, 1.6, 0.2), 'Default:Uber Onslaught', - 30, + ticket_award=30, hard_mode_only=True, - ) - ) - # 30 - achs.append( + ), Achievement( 'TNT Terror', 'achievementTNT', (2, 1.8, 0.3), 'Default:Uber Onslaught', - 30, + ticket_award=30, hard_mode_only=True, - ) - ) - - # 30 - achs.append( + ), Achievement( 'Uber Football Victory', 'achievementFootballVictory', (1.8, 1.4, 0.3), 'Default:Uber Football', - 30, - ) - ) - # 30 - achs.append( + ticket_award=30, + ), Achievement( 'Got the Moves', 'achievementGotTheMoves', (2, 1, 0), 'Default:Uber Football', - 30, + ticket_award=30, hard_mode_only=True, - ) - ) - # 40 - achs.append( + ), Achievement( 'Uber Football Shutout', 'achievementFootballShutout', (2, 2, 0), 'Default:Uber Football', - 40, + ticket_award=40, hard_mode_only=True, - ) - ) - - # 30 - achs.append( + ), Achievement( 'Uber Runaround Victory', 'achievementRunaround', (1.5, 1.2, 0.2), 'Default:Uber Runaround', - 30, - ) - ) - # 40 - achs.append( + ticket_award=30, + ), Achievement( 'The Great Wall', 'achievementWall', (2, 1.7, 0.4), 'Default:Uber Runaround', - 40, + ticket_award=40, hard_mode_only=True, - ) - ) - # 40 - achs.append( + ), Achievement( 'Stayin\' Alive', 'achievementStayinAlive', (2, 2, 1), 'Default:Uber Runaround', - 40, + ticket_award=40, hard_mode_only=True, - ) - ) - - # 20 - achs.append( + ), Achievement( 'Last Stand Master', 'achievementMedalSmall', (2, 1.5, 0.3), 'Default:The Last Stand', - 20, + ticket_award=20, hard_mode_only=True, - ) - ) - # 40 - achs.append( + ), Achievement( 'Last Stand Wizard', 'achievementMedalMedium', (2, 1.5, 0.3), 'Default:The Last Stand', - 40, + ticket_award=40, hard_mode_only=True, - ) - ) - # 60 - achs.append( + ), Achievement( 'Last Stand God', 'achievementMedalLarge', (2, 1.5, 0.3), 'Default:The Last Stand', - 60, + ticket_award=60, hard_mode_only=True, - ) - ) - - # 5 - achs.append( + ), Achievement( 'Onslaught Master', 'achievementMedalSmall', (0.7, 1, 0.7), 'Challenges:Infinite Onslaught', - 5, - ) - ) - # 15 - achs.append( + ticket_award=5, + ), Achievement( 'Onslaught Wizard', 'achievementMedalMedium', (0.7, 1.0, 0.7), 'Challenges:Infinite Onslaught', - 15, - ) - ) - # 30 - achs.append( + ticket_award=15, + ), Achievement( 'Onslaught God', 'achievementMedalLarge', (0.7, 1.0, 0.7), 'Challenges:Infinite Onslaught', - 30, - ) - ) - - # 5 - achs.append( + ticket_award=30, + ), Achievement( 'Runaround Master', 'achievementMedalSmall', (1.0, 1.0, 1.2), 'Challenges:Infinite Runaround', - 5, - ) - ) - # 15 - achs.append( + ticket_award=5, + ), Achievement( 'Runaround Wizard', 'achievementMedalMedium', (1.0, 1.0, 1.2), 'Challenges:Infinite Runaround', - 15, - ) - ) - # 30 - achs.append( + ticket_award=15, + ), Achievement( 'Runaround God', 'achievementMedalLarge', (1.0, 1.0, 1.2), 'Challenges:Infinite Runaround', - 30, - ) - ) + ticket_award=30, + ), + ] def award_local_achievement(self, achname: str) -> None: """For non-game-based achievements such as controller-connection.""" @@ -652,18 +535,20 @@ class Achievement: self, name: str, icon_name: str, - icon_color: Sequence[float], + icon_color: tuple[float, float, float], level_name: str, - award: int, + *, + ticket_award: int, + # chest_award: ClassicChestAppearance, hard_mode_only: bool = False, ): - # pylint: disable=too-many-positional-arguments self._name = name self._icon_name = icon_name - self._icon_color: Sequence[float] = list(icon_color) + [1] + assert len(icon_color) == 3 + self._icon_color = icon_color + (1.0,) self._level_name = level_name self._completion_banner_slot: int | None = None - self._award = award + self._ticket_award = ticket_award self._hard_mode_only = hard_mode_only @property @@ -843,16 +728,16 @@ class Achievement: ], ) - def get_award_ticket_value(self, include_pro_bonus: bool = False) -> int: - """Get the ticket award value for this achievement.""" - plus = babase.app.plus - if plus is None: - return 0 - val: int = plus.get_v1_account_misc_read_val( - 'achAward.' + self._name, self._award - ) * _get_ach_mult(include_pro_bonus) - assert isinstance(val, int) - return val + # def get_award_ticket_value(self, include_pro_bonus: bool = False) -> int: + # """Get the ticket award value for this achievement.""" + # plus = babase.app.plus + # if plus is None: + # return 0 + # val: int = plus.get_v1_account_misc_read_val( + # 'achAward.' + self._name, self._ticket_award + # ) * _get_ach_mult(include_pro_bonus) + # assert isinstance(val, int) + # return val @property def power_ranking_value(self) -> int: @@ -861,7 +746,7 @@ class Achievement: if plus is None: return 0 val: int = plus.get_v1_account_misc_read_val( - 'achLeaguePoints.' + self._name, self._award + 'achLeaguePoints.' + self._name, self._ticket_award ) assert isinstance(val, int) return val @@ -1019,39 +904,40 @@ class Achievement: # Ticket-award. award_x = -100 - objs.append( - Text( - babase.charstr(babase.SpecialChar.TICKET), - host_only=True, - position=(x + award_x + 33, y + 7), - transition=Text.Transition.FADE_IN, - scale=1.5, - h_attach=h_attach, - v_attach=v_attach, - h_align=Text.HAlign.CENTER, - v_align=Text.VAlign.CENTER, - color=(1, 1, 1, 0.2 if hmo else 0.4), - transition_delay=delay + 0.05, - transition_out_delay=out_delay_fin, - ).autoretain() - ) - objs.append( - Text( - '+' + str(self.get_award_ticket_value()), - host_only=True, - position=(x + award_x + 28, y + 16), - transition=Text.Transition.FADE_IN, - scale=0.7, - flatness=1, - h_attach=h_attach, - v_attach=v_attach, - h_align=Text.HAlign.CENTER, - v_align=Text.VAlign.CENTER, - color=cl2, - transition_delay=delay + 0.05, - transition_out_delay=out_delay_fin, - ).autoretain() - ) + # print('FIXME SHOW ACH CHEST VAL') + # objs.append( + # Text( + # babase.charstr(babase.SpecialChar.TICKET), + # host_only=True, + # position=(x + award_x + 33, y + 7), + # transition=Text.Transition.FADE_IN, + # scale=1.5, + # h_attach=h_attach, + # v_attach=v_attach, + # h_align=Text.HAlign.CENTER, + # v_align=Text.VAlign.CENTER, + # color=(1, 1, 1, 0.2 if hmo else 0.4), + # transition_delay=delay + 0.05, + # transition_out_delay=out_delay_fin, + # ).autoretain() + # ) + # objs.append( + # Text( + # '+' + str(self.get_award_ticket_value()), + # host_only=True, + # position=(x + award_x + 28, y + 16), + # transition=Text.Transition.FADE_IN, + # scale=0.7, + # flatness=1, + # h_attach=h_attach, + # v_attach=v_attach, + # h_align=Text.HAlign.CENTER, + # v_align=Text.VAlign.CENTER, + # color=cl2, + # transition_delay=delay + 0.05, + # transition_out_delay=out_delay_fin, + # ).autoretain() + # ) else: complete = self.complete @@ -1110,23 +996,24 @@ class Achievement: transition_out_delay=None, ).autoretain() ) - objs.append( - Text( - '+' + str(self.get_award_ticket_value()), - host_only=True, - position=(x + award_x + 28, y + 16), - transition=Text.Transition.IN_RIGHT, - scale=0.7, - flatness=1, - h_attach=h_attach, - v_attach=v_attach, - h_align=Text.HAlign.CENTER, - v_align=Text.VAlign.CENTER, - color=(0.6, 0.6, 0.6, (0.2 if hmo else 0.4)), - transition_delay=delay + 0.05, - transition_out_delay=None, - ).autoretain() - ) + # print('FIXME SHOW ACH CHEST2') + # objs.append( + # Text( + # '+' + str(self.get_award_ticket_value()), + # host_only=True, + # position=(x + award_x + 28, y + 16), + # transition=Text.Transition.IN_RIGHT, + # scale=0.7, + # flatness=1, + # h_attach=h_attach, + # v_attach=v_attach, + # h_align=Text.HAlign.CENTER, + # v_align=Text.VAlign.CENTER, + # color=(0.6, 0.6, 0.6, (0.2 if hmo else 0.4)), + # transition_delay=delay + 0.05, + # transition_out_delay=None, + # ).autoretain() + # ) # Show 'hard-mode-only' only over incomplete achievements # when that's the case. @@ -1478,49 +1365,51 @@ class Achievement: assert objt.node objt.node.host_only = True - objt = Text( - '+' + str(self.get_award_ticket_value()), - position=(-120 - 180 + 5, 80 + y_offs - 20), - v_attach=Text.VAttach.BOTTOM, - front=True, - h_align=Text.HAlign.CENTER, - v_align=Text.VAlign.CENTER, - transition=Text.Transition.IN_BOTTOM, - vr_depth=base_vr_depth, - flatness=0.5, - shadow=1.0, - transition_delay=in_time, - transition_out_delay=out_time, - flash=True, - color=(0, 1, 0, 1), - scale=1.5, - ).autoretain() - objs.append(objt) + # print('FIXME SHOW ACH CHEST3') + # objt = Text( + # '+' + str(self.get_award_ticket_value()), + # position=(-120 - 180 + 5, 80 + y_offs - 20), + # v_attach=Text.VAttach.BOTTOM, + # front=True, + # h_align=Text.HAlign.CENTER, + # v_align=Text.VAlign.CENTER, + # transition=Text.Transition.IN_BOTTOM, + # vr_depth=base_vr_depth, + # flatness=0.5, + # shadow=1.0, + # transition_delay=in_time, + # transition_out_delay=out_time, + # flash=True, + # color=(0, 1, 0, 1), + # scale=1.5, + # ).autoretain() + # objs.append(objt) + assert objt.node objt.node.host_only = True # Add the 'x 2' if we've got pro. - if app.classic.accounts.have_pro(): - objt = Text( - 'x 2', - position=(-120 - 180 + 45, 80 + y_offs - 50), - v_attach=Text.VAttach.BOTTOM, - front=True, - h_align=Text.HAlign.CENTER, - v_align=Text.VAlign.CENTER, - transition=Text.Transition.IN_BOTTOM, - vr_depth=base_vr_depth, - flatness=0.5, - shadow=1.0, - transition_delay=in_time, - transition_out_delay=out_time, - flash=True, - color=(0.4, 0, 1, 1), - scale=0.9, - ).autoretain() - objs.append(objt) - assert objt.node - objt.node.host_only = True + # if app.classic.accounts.have_pro(): + # objt = Text( + # 'x 2', + # position=(-120 - 180 + 45, 80 + y_offs - 50), + # v_attach=Text.VAttach.BOTTOM, + # front=True, + # h_align=Text.HAlign.CENTER, + # v_align=Text.VAlign.CENTER, + # transition=Text.Transition.IN_BOTTOM, + # vr_depth=base_vr_depth, + # flatness=0.5, + # shadow=1.0, + # transition_delay=in_time, + # transition_out_delay=out_time, + # flash=True, + # color=(0.4, 0, 1, 1), + # scale=0.9, + # ).autoretain() + # objs.append(objt) + # assert objt.node + # objt.node.host_only = True objt = Text( self.description_complete, diff --git a/src/assets/ba_data/python/baenv.py b/src/assets/ba_data/python/baenv.py index d461ac85..dbc5508d 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 = 22204 +TARGET_BALLISTICA_BUILD = 22207 TARGET_BALLISTICA_VERSION = '1.7.37' diff --git a/src/assets/ba_data/python/bauiv1lib/coop/gamebutton.py b/src/assets/ba_data/python/bauiv1lib/coop/gamebutton.py index 691e77fd..55a06d79 100644 --- a/src/assets/ba_data/python/bauiv1lib/coop/gamebutton.py +++ b/src/assets/ba_data/python/bauiv1lib/coop/gamebutton.py @@ -68,7 +68,7 @@ class GameButton: position=(x + 23, y + 4), size=(sclx, scly), label='', - on_activate_call=bui.WeakCall(self._on_press), + on_activate_call=self._on_press, button_type='square', autoselect=True, on_select_call=bui.Call(window.sel_change, row, game), diff --git a/src/assets/ba_data/python/bauiv1lib/store/browser.py b/src/assets/ba_data/python/bauiv1lib/store/browser.py index 27eba4c9..f08213b1 100644 --- a/src/assets/ba_data/python/bauiv1lib/store/browser.py +++ b/src/assets/ba_data/python/bauiv1lib/store/browser.py @@ -198,8 +198,8 @@ class StoreBrowserWindow(bui.MainWindow): center = (pos[0] + 0.1 * size[0], pos[1] + 0.9 * size[1]) img = bui.imagewidget( parent=self._root_widget, - position=(center[0] - rad * 1.04, center[1] - rad * 1.15), - size=(rad * 2.2, rad * 2.2), + position=(center[0] - rad * 1.1, center[1] - rad * 1.2), + size=(rad * 2.4, rad * 2.4), texture=bui.gettexture('circleShadow'), color=(1, 0, 0), ) diff --git a/src/ballistica/shared/ballistica.cc b/src/ballistica/shared/ballistica.cc index 14827c77..b5d7f3b7 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 = 22204; +const int kEngineBuildNumber = 22207; const char* kEngineVersion = "1.7.37"; const int kEngineApiVersion = 9;