diff --git a/CHANGELOG.md b/CHANGELOG.md index a8e14605..bee382cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ pop-up web dialog to avoid taking users out of the app. This currently works on the native (not cmake) Mac build but will probably expand to others in the future. -- The `ba*.app.env.version` `and ba*.app.env.build_number` values are now +- The `ba*.app.env.version` and `ba*.app.env.build_number` values are now `ba*.app.env.engine_version` and `ba*.app.env.engine_build_number`. At this point any functionality that cares about versions should be looking at engine version anyway. In the future we can add separate `app_version` and @@ -60,7 +60,9 @@ multiple `SockAddr`s; it will attempt to contact the host on all of them and use whichever responds first. This allows us to pass both ipv4 and ipv6 addresses when available and transparently use whichever is more performant. -- Added `docker-build` and `docker-run` targets to Makefile +- Added `docker-build`, `docker-run`, `docker-clean` and `docker-save` targets + to Makefile. +- Finally fixed the very old sticky bomb chaos bug in Assault game. ### 1.7.34 (build 21823, api 8, 2024-04-26) diff --git a/README.md b/README.md index 4929923d..404b8d44 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ PlayStation / My toaster??** * A: The 2.0 update will be the big 'relaunch' release and the plan is to launch on at least iOS and Steam at that time. I'm trying to get there as fast as I can. As far as consoles, I'd love to and hope to at some point but have - nothing to announce just yet. See the + nothing to announce just yet. * Check out [Ballistica Roadmap](https://github.com/efroemling/ballistica/wiki/Roadmap) for more details or the [Ballistica Downloads](https://ballistica.net/downloads) page for early test builds on diff --git a/src/assets/ba_data/python/bascenev1lib/game/assault.py b/src/assets/ba_data/python/bascenev1lib/game/assault.py index fa50f2ca..54a42362 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/assault.py +++ b/src/assets/ba_data/python/bascenev1lib/game/assault.py @@ -244,9 +244,17 @@ class AssaultGame(bs.TeamGameActivity[Player, Team]): bs.timer(0.5, light.delete) bs.animate(light, 'intensity', {0: 0, 0.1: 1.0, 0.5: 0}) if player.actor: - player.actor.handlemessage( - bs.StandMessage(new_pos, random.uniform(0, 360)) - ) + random_num = random.uniform(0, 360) + # A simple hack to work around the chaos caused by + # any sticky bomb's sticky material, if present and + # is sticking to the players. + self._teleport(player, new_pos, random_num) + bs.timer(0.01, bs.Call( + self._teleport, + player, + new_pos, + random_num + )) # Have teammates celebrate. for player in player_team.players: @@ -258,6 +266,15 @@ class AssaultGame(bs.TeamGameActivity[Player, Team]): if player_team.score >= self._score_to_win: self.end_game() + def _teleport( + self, + client: Player, + pos: Sequence[float], + num: float + ) -> None: + if client.actor: + client.actor.handlemessage(bs.StandMessage(pos,num)) + @override def end_game(self) -> None: results = bs.GameResults() diff --git a/src/assets/ba_data/python/bauiv1lib/settings/plugins.py b/src/assets/ba_data/python/bauiv1lib/settings/plugins.py index bcece4e6..c9fec166 100644 --- a/src/assets/ba_data/python/bauiv1lib/settings/plugins.py +++ b/src/assets/ba_data/python/bauiv1lib/settings/plugins.py @@ -388,7 +388,10 @@ class PluginWindow(bui.Window): edit=check, up_widget=self._back_button, left_widget=self._back_button, - right_widget=self._settings_button, + right_widget=( + self._settings_button if button is None else + button + ), ) if button is not None: bui.widget(edit=button, up_widget=self._back_button)