diff --git a/.efrocachemap b/.efrocachemap index 060f61fb..44690c2a 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -420,36 +420,36 @@ "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/04/0a/c4f7d2794b018593ab0b2bcb07f0", "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/06/4d/18777c9a2eb2207a2891a2837a70", "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/81/90/23ab1ecc8c55267bd904a9c05344", - "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/af/5d/5475c7fa4b5899788c5b3e241e01", + "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/06/dd/547243a95a0360ffb4b2ddcad13a", "assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/6a/11/c33066f52828a303d62613254148", "assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/49/5f/b29bb65369040892fe6601801637", - "assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/45/68/29dd2936391a747f99227423675b", - "assets/build/ba_data/data/languages/chinesetraditional.json": "https://files.ballistica.net/cache/ba1/d1/96/688ec16a817f34509e69109a431d", + "assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/c3/3f/c37ac3c65ac65f171af9313a502a", + "assets/build/ba_data/data/languages/chinesetraditional.json": "https://files.ballistica.net/cache/ba1/5a/9e/e8cad6f08b2b19803ab20fdc80d0", "assets/build/ba_data/data/languages/croatian.json": "https://files.ballistica.net/cache/ba1/c7/ea/7b4357666b328b991fe82ea9a3fb", "assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/dd/5a/14ca3ebb92a802315921e2b2b215", "assets/build/ba_data/data/languages/danish.json": "https://files.ballistica.net/cache/ba1/3f/46/e4da3c1d2b0ebf916df55c608b28", "assets/build/ba_data/data/languages/dutch.json": "https://files.ballistica.net/cache/ba1/d1/07/37b7adc3dbec7328d26c5325f212", - "assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/56/1f/fe2912d87b3af510469dc40bdf85", + "assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/d4/5b/fbd64cf1846340db0606824568c2", "assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/6e/fd/685a4e1da031474d47a1d9eb2731", - "assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/97/cc/8afdb842dbf284fc8bc60c72e2de", + "assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/e3/6d/63e78b12ae9d99e0929671f52c12", "assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/fe/33/cead18bf921903f8c6d922017892", - "assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/57/7d/e79791913a06c9c15fec75138e6a", + "assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/97/3a/b6746b7f89af424584c794c4d11f", "assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/17/78/3fd0dca40e632ce53d03a944e7fa", - "assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/11/56/ed2b07866104596338f7ce582d64", + "assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/d5/19/5e450e35b83fe68722330d03b896", "assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/87/2d/027aa239eb66ea8f496562f4fd83", "assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/a9/71/817446169ae436e6775f76cd5aec", - "assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/82/7b/fac54bd2911a93d3d50df3c25ee2", + "assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/a8/b9/070b8151df9a1664d6b1b425f0b3", "assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/0a/84/bbb6ed2abf66509406f534cbbb52", "assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/86/bf/284e1d1c6f07720828754b1ad4c9", - "assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/1d/55/f8a3d9c1d8132527b1f273bdf7f7", - "assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/b7/d8/4713322c35511a50e00b0aaead5a", + "assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/88/4b/6745a1a58220772e259f0de51196", + "assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/42/b5/7612cce15fe4555889585108b3ef", "assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/44/3c/7cc06ca8d5475e1687d0ed05bdbf", - "assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/61/97/8f5273183a2a0a5425bc6f4c3070", + "assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/d4/bb/69c09648f60e36f35bd38be20cf8", "assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/e7/d8/ace32888249fc8b8cca0e2edb48b", "assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/b7/0a/fab820b96e7aa587ee56427ecdc2", - "assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/c2/bc/a426b99c4fde5f1eeeac97cf3600", + "assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/b9/6b/adf28849d42f4c195dacf4f53902", "assets/build/ba_data/data/languages/swedish.json": "https://files.ballistica.net/cache/ba1/50/9f/be006ba19be6a69a57837eb6dca0", - "assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/fc/68/afb751f913d8ae75effebc95f4a0", + "assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/9a/8a/f7b2521c1904ffc83262dff1e11b", "assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/b8/8c/ac972d1936acf2aaa1d06a4b5ce6", "assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/ae/ec/9335bf4749a979061be7b8e6d613", "assets/build/ba_data/data/languages/vietnamese.json": "https://files.ballistica.net/cache/ba1/04/52/683a27aaf9aa7c63e7e595f80d08", @@ -3928,16 +3928,16 @@ "assets/build/windows/Win32/ucrtbased.dll": "https://files.ballistica.net/cache/ba1/b5/85/f8b6d0558ddb87267f34254b1450", "assets/build/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/1c/e1/4a1a2eddda2f4aebd5f8b64ab08e", "assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f", - "build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fc/51/42cfaaf8101f604adbf7bdcb7c34", - "build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a9/b6/2a886ca52b15e3c1a4ac7ca327f3", - "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c7/e5/cf5c585713f11c691047580a1f0c", - "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/59/7e/0fd8ce8fb147026004e8a6a313f4", - "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ce/4b/75871cc1df9b1536818717a03714", - "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f0/94/bfb8f62d52af7a114e36f90a3f1c", - "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/77/3f/65c310bf29312f1fcb75f7d92fc9", - "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/20/11/51e2583fbb531888d79559a0ff92", - "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/20/f2/a60ad18026aaefb0261a595781d6", - "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/b6/ac/54d5bb63ee411bb0cc10ce76e5bf", - "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/33/e7/4e471804132ec72ca1bf4229612b", - "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/b8/1f/09cc97502db36973d70a9bbb42c9" + "build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/6e/f4/988128b2a38a8321ec354da5dcee", + "build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/de/58/1aa87a7931c22de875911fd514d8", + "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a1/3b/70935fd69c8ee28b0e6a087b94fd", + "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/b3/1b/5fc0ae2fc3fea72d1a44d76acced", + "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/88/3b/fbd18332d7c9eb9bb6d19dbfdcb6", + "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c3/d4/9253ba5d7f3e264333960a11821e", + "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/bc/1f/17c118919f6b7d519652cfbc285e", + "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/52/3c/0b153dc147c57263eb5e79c6f419", + "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/76/0c/1473b08573d227c76ebecd1248c6", + "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/89/b3/cf229fd1765296e8829cd7e877b7", + "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/2f/06/64b2cc506e0f32082fe8280cd294", + "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/54/8b/812d044be955463754ee378173f6" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index aefbbcbb..b926cb28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.5.25 (20164) +### 1.5.25 (20165) - Added Venetian language (thanks Federico!) ### 1.5.24 (20163) diff --git a/assets/src/ba_data/python/ba/_app.py b/assets/src/ba_data/python/ba/_app.py index c3fafecf..e6d9d839 100644 --- a/assets/src/ba_data/python/ba/_app.py +++ b/assets/src/ba_data/python/ba/_app.py @@ -301,8 +301,10 @@ class App: assert isinstance(self.protocol_version, int) self.toolbar_test: bool = env['toolbar_test'] assert isinstance(self.toolbar_test, bool) - self.kiosk_mode: bool = env['kiosk_mode'] - assert isinstance(self.kiosk_mode, bool) + self.demo_mode: bool = env['demo_mode'] + assert isinstance(self.demo_mode, bool) + self.arcade_mode: bool = env['arcade_mode'] + assert isinstance(self.arcade_mode, bool) self.headless_build: bool = env['headless_build'] assert isinstance(self.headless_build, bool) diff --git a/assets/src/ba_data/python/ba/_coopgame.py b/assets/src/ba_data/python/ba/_coopgame.py index 4e169f81..7e686dd4 100644 --- a/assets/src/ba_data/python/ba/_coopgame.py +++ b/assets/src/ba_data/python/ba/_coopgame.py @@ -64,7 +64,7 @@ class CoopGameActivity(GameActivity[PlayerType, TeamType]): super().on_begin() # Show achievements remaining. - if not _ba.app.kiosk_mode: + if not (_ba.app.demo_mode or _ba.app.arcade_mode): _ba.timer(3.8, WeakCall(self._show_remaining_achievements)) # Preload achievement images in case we get some. diff --git a/assets/src/ba_data/python/ba/_coopsession.py b/assets/src/ba_data/python/ba/_coopsession.py index b50365f1..113a5886 100644 --- a/assets/src/ba_data/python/ba/_coopsession.py +++ b/assets/src/ba_data/python/ba/_coopsession.py @@ -292,7 +292,7 @@ class CoopSession(Session): # tutorial first. if (isinstance(activity, JoinActivity) and self.campaign_level_name == 'Onslaught Training' - and not app.kiosk_mode): + and not (app.demo_mode or app.arcade_mode)): if self._tutorial_activity is None: raise RuntimeError('Tutorial not preloaded properly.') self.setactivity(self._tutorial_activity) @@ -315,7 +315,7 @@ class CoopSession(Session): # Now flip the current activity.. self.setactivity(next_game) - if not app.kiosk_mode: + if not (app.demo_mode or app.arcade_mode): if self.tournament_id is not None: self._custom_menu_ui = [{ 'label': diff --git a/assets/src/ba_data/python/ba/_lobby.py b/assets/src/ba_data/python/ba/_lobby.py index 82898aba..f540478e 100644 --- a/assets/src/ba_data/python/ba/_lobby.py +++ b/assets/src/ba_data/python/ba/_lobby.py @@ -77,7 +77,7 @@ class JoinInfo: 'text': self._joinmsg })) - if _ba.app.kiosk_mode: + if _ba.app.demo_mode or _ba.app.arcade_mode: self._messages = [self._joinmsg] else: msg1 = Lstr(resource='pressToSelectProfileText', @@ -406,13 +406,14 @@ class Chooser: self._profiles['_random'] = {} # In kiosk mode we disable account profiles to force random. - if app.kiosk_mode: + if app.demo_mode or app.arcade_mode: if '__account__' in self._profiles: del self._profiles['__account__'] # For local devices, add it an 'edit' option which will pop up # the profile window. - if not is_remote and not is_test_input and not app.kiosk_mode: + if not is_remote and not is_test_input and not (app.demo_mode + or app.arcade_mode): self._profiles['_edit'] = {} # Build a sorted name list we can iterate through. diff --git a/assets/src/ba_data/python/ba/_profile.py b/assets/src/ba_data/python/ba/_profile.py index 8448baae..c938c33c 100644 --- a/assets/src/ba_data/python/ba/_profile.py +++ b/assets/src/ba_data/python/ba/_profile.py @@ -77,7 +77,7 @@ def get_player_profile_colors( # Special case: when being asked for a random color in kiosk mode, # always return default purple. - if _ba.app.kiosk_mode and profilename is None: + if (_ba.app.demo_mode or _ba.app.arcade_mode) and profilename is None: color = (0.5, 0.4, 1.0) highlight = (0.4, 0.4, 0.5) else: diff --git a/assets/src/ba_data/python/bastd/activity/coopjoin.py b/assets/src/ba_data/python/bastd/activity/coopjoin.py index e1f06dd0..cf9f33ef 100644 --- a/assets/src/ba_data/python/bastd/activity/coopjoin.py +++ b/assets/src/ba_data/python/bastd/activity/coopjoin.py @@ -173,7 +173,7 @@ class CoopJoinActivity(JoinActivity): self.session.campaign_level_name) ts_h_offs = 60 - if not ba.app.kiosk_mode: + if not (ba.app.demo_mode or ba.app.arcade_mode): achievements = [ a for a in get_achievements_for_coop_level(levelname) if not a.complete diff --git a/assets/src/ba_data/python/bastd/activity/coopscore.py b/assets/src/ba_data/python/bastd/activity/coopscore.py index 42da9596..24b0fc73 100644 --- a/assets/src/ba_data/python/bastd/activity/coopscore.py +++ b/assets/src/ba_data/python/bastd/activity/coopscore.py @@ -389,7 +389,8 @@ class CoopScoreScreen(ba.Activity[ba.Player, ba.Team]): else: pass - show_next_button = self._is_more_levels and not ba.app.kiosk_mode + show_next_button = self._is_more_levels and not (ba.app.demo_mode + or ba.app.arcade_mode) if not show_next_button: h_offs += 70 @@ -455,7 +456,7 @@ class CoopScoreScreen(ba.Activity[ba.Player, ba.Team]): self._corner_button_offs = (h_offs + 300.0 + 100.0 + x_offs_extra, v_offs + 560.0) - if ba.app.kiosk_mode: + if ba.app.demo_mode or ba.app.arcade_mode: self._league_rank_button = None self._store_button_instance = None else: @@ -542,7 +543,7 @@ class CoopScoreScreen(ba.Activity[ba.Player, ba.Team]): ba.timer(1.0, ba.WeakCall(self.request_ui)) if (self._is_complete and self._victory and self._is_more_levels - and not ba.app.kiosk_mode): + and not (ba.app.demo_mode or ba.app.arcade_mode)): Text(ba.Lstr(value='${A}:\n', subs=[('${A}', ba.Lstr(resource='levelUnlockedText')) ]) if self._newly_complete else @@ -690,7 +691,7 @@ class CoopScoreScreen(ba.Activity[ba.Player, ba.Team]): }) if _ba.get_account_state() != 'signed_in': # We expect this only in kiosk mode; complain otherwise. - if not ba.app.kiosk_mode: + if not (ba.app.demo_mode or ba.app.arcade_mode): print('got not-signed-in at score-submit; unexpected') if self._show_friend_scores: ba.pushcall(ba.WeakCall(self._got_friend_score_results, None)) diff --git a/assets/src/ba_data/python/bastd/game/football.py b/assets/src/ba_data/python/bastd/game/football.py index ac6d4925..1a0bb939 100644 --- a/assets/src/ba_data/python/bastd/game/football.py +++ b/assets/src/ba_data/python/bastd/game/football.py @@ -450,7 +450,7 @@ class FootballCoopGame(ba.CoopGameActivity[Player, Team]): super().on_begin() # Show controls help in kiosk mode. - if ba.app.kiosk_mode: + if ba.app.demo_mode or ba.app.arcade_mode: controlsguide.ControlsGuide(delay=3.0, lifespan=10.0, bright=True).autoretain() assert self.initialplayerinfos is not None diff --git a/assets/src/ba_data/python/bastd/game/onslaught.py b/assets/src/ba_data/python/bastd/game/onslaught.py index 97718328..72484566 100644 --- a/assets/src/ba_data/python/bastd/game/onslaught.py +++ b/assets/src/ba_data/python/bastd/game/onslaught.py @@ -457,8 +457,8 @@ class OnslaughtGame(ba.CoopGameActivity[Player, Team]): elif self._preset in {Preset.UBER, Preset.UBER_EASY}: - # Show controls help in kiosk mode. - if ba.app.kiosk_mode: + # Show controls help in demo/arcade modes. + if ba.app.demo_mode or ba.app.arcade_mode: ControlsGuide(delay=3.0, lifespan=10.0, bright=True).autoretain() diff --git a/assets/src/ba_data/python/bastd/mainmenu.py b/assets/src/ba_data/python/bastd/mainmenu.py index 99795e68..e669875b 100644 --- a/assets/src/ba_data/python/bastd/mainmenu.py +++ b/assets/src/ba_data/python/bastd/mainmenu.py @@ -150,8 +150,9 @@ class MainMenuActivity(ba.Activity[ba.Player, ba.Team]): # Throw in test build info. self.beta_info = self.beta_info_2 = None - if app.test_build and not app.kiosk_mode: - pos = (230, 125) if app.kiosk_mode else (230, 35) + if app.test_build and not (app.demo_mode or app.arcade_mode): + pos = ((230, 125) if (app.demo_mode or app.arcade_mode) else + (230, 35)) self.beta_info = ba.NodeActor( ba.newnode('text', attrs={ @@ -396,7 +397,7 @@ class MainMenuActivity(ba.Activity[ba.Player, ba.Team]): })) self._change_phrase() - if not app.kiosk_mode and not app.toolbar_test: + if not (app.demo_mode or app.arcade_mode) and not app.toolbar_test: self._news = News(self) # Bring up the last place we were, or start at the main menu otherwise. @@ -411,7 +412,7 @@ class MainMenuActivity(ba.Activity[ba.Player, ba.Team]): # When coming back from a kiosk-mode game, jump to # the kiosk start screen. - if ba.app.kiosk_mode: + if ba.app.demo_mode or ba.app.arcade_mode: # pylint: disable=cyclic-import from bastd.ui.kiosk import KioskWindow ba.app.ui.set_main_menu_window( @@ -514,7 +515,7 @@ class MainMenuActivity(ba.Activity[ba.Player, ba.Team]): base_x = -270.0 x = base_x - 20.0 spacing = 85.0 * base_scale - y_extra = 0.0 if app.kiosk_mode else 0.0 + y_extra = 0.0 if (app.demo_mode or app.arcade_mode) else 0.0 self._make_logo(x - 110 + 50, 113 + y + 1.2 * y_extra, 0.34 * base_scale, @@ -567,7 +568,7 @@ class MainMenuActivity(ba.Activity[ba.Player, ba.Team]): base_x = -170 x = base_x - 20 spacing = 55 * base_scale - y_extra = 0 if app.kiosk_mode else 0 + y_extra = 0 if (app.demo_mode or app.arcade_mode) else 0 xv1 = x delay1 = delay for shadow in (True, False): diff --git a/assets/src/ba_data/python/bastd/ui/kiosk.py b/assets/src/ba_data/python/bastd/ui/kiosk.py index 3d21fae6..949ebd6f 100644 --- a/assets/src/ba_data/python/bastd/ui/kiosk.py +++ b/assets/src/ba_data/python/bastd/ui/kiosk.py @@ -99,8 +99,9 @@ class KioskWindow(ba.Window): size=(0, 0), position=(self._width * 0.5, self._height + y_extra - 34), transition_delay=tdelay, - text=ba.Lstr(resource='demoText', - fallback_resource='mainMenu.demoMenuText'), + text=(ba.Lstr(resource='demoText', + fallback_resource='mainMenu.demoMenuText') + if ba.app.demo_mode else 'ARCADE'), flatness=1.0, scale=1.2, h_align='center', @@ -311,8 +312,7 @@ class KioskWindow(ba.Window): self._b4 = self._b5 = self._b6 = None self._b7: Optional[ba.Widget] - uiscale = ba.app.ui.uiscale - if bool(False): + if ba.app.arcade_mode: self._b7 = ba.buttonwidget( parent=self._root_widget, autoselect=True, @@ -320,10 +320,7 @@ class KioskWindow(ba.Window): color=(0.45, 0.55, 0.45), textcolor=(0.7, 0.8, 0.7), scale=0.5, - position=((self._width * 0.5 - 37.5, - y_extra + 120) if not self._show_multiplayer else - (self._width + 100, y_extra + - (140 if uiscale is ba.UIScale.SMALL else 120))), + position=(self._width * 0.5 - 60.0, b_v - 70.0), transition_delay=tdelay, label=ba.Lstr(resource=self._r + '.fullMenuText'), on_activate_call=self._do_full_menu) diff --git a/assets/src/ba_data/python/bastd/ui/mainmenu.py b/assets/src/ba_data/python/bastd/ui/mainmenu.py index 070dc893..7e1459e6 100644 --- a/assets/src/ba_data/python/bastd/ui/mainmenu.py +++ b/assets/src/ba_data/python/bastd/ui/mainmenu.py @@ -56,7 +56,8 @@ class MainMenuWindow(ba.Window): toolbar_visibility='menu_minimal_no_back' if self. _in_game else 'menu_minimal_no_back')) - self._is_kiosk = ba.app.kiosk_mode + self._is_demo = ba.app.demo_mode + self._is_arcade = ba.app.arcade_mode self._tdelay = 0.0 self._t_delay_inc = 0.02 self._t_delay_play = 1.7 @@ -73,6 +74,7 @@ class MainMenuWindow(ba.Window): self._gc_button: Optional[ba.Widget] = None self._how_to_play_button: Optional[ba.Widget] = None self._credits_button: Optional[ba.Widget] = None + self._settings_button: Optional[ba.Widget] = None self._store_char_tex = self._get_store_char_tex() @@ -193,9 +195,9 @@ class MainMenuWindow(ba.Window): self._have_store_button = not self._in_game - self._have_settings_button = ((not self._in_game - or not app.toolbar_test) - and not self._is_kiosk) + self._have_settings_button = ( + (not self._in_game or not app.toolbar_test) + and not (self._is_demo or self._is_arcade)) self._input_device = input_device = _ba.get_ui_input_device() self._input_player = input_device.player if input_device else None @@ -500,7 +502,7 @@ class MainMenuWindow(ba.Window): (x_offs + spc * i - 1.0, button_y_offs + button_y_offs2, small_button_scale)) # In kiosk mode, provide a button to get back to the kiosk menu. - if ba.app.kiosk_mode: + if ba.app.demo_mode or ba.app.arcade_mode: h, v, scale = positions[self._p_index] this_b_width = self._button_width * 0.4 * scale demo_menu_delay = 0.0 if self._t_delay_play == 0.0 else max( @@ -512,7 +514,8 @@ class MainMenuWindow(ba.Window): autoselect=True, color=(0.45, 0.55, 0.45), textcolor=(0.7, 0.8, 0.7), - label=ba.Lstr(resource=self._r + '.demoMenuText'), + label=ba.Lstr(resource='modeArcadeText' if ba.app. + arcade_mode else 'modeDemoText'), transition_delay=demo_menu_delay, on_activate_call=self._demo_menu_press) else: @@ -707,7 +710,7 @@ class MainMenuWindow(ba.Window): f'Error getting custom menu entries for {session}') self._width = 250.0 self._height = 250.0 if self._input_player else 180.0 - if self._is_kiosk and self._input_player: + if (self._is_demo or self._is_arcade) and self._input_player: self._height -= 40 if not self._have_settings_button: self._height -= 50 @@ -782,7 +785,7 @@ class MainMenuWindow(ba.Window): autoselect=self._use_autoselect) # Add a 'leave' button if the menu-owner has a player. if ((self._input_player or self._connected_to_remote_player) - and not self._is_kiosk): + and not (self._is_demo or self._is_arcade)): h, v, scale = positions[self._p_index] self._p_index += 1 btn = ba.buttonwidget(parent=self._root_widget, diff --git a/docs/ba_module.md b/docs/ba_module.md index 15986a93..800da8f6 100644 --- a/docs/ba_module.md +++ b/docs/ba_module.md @@ -1,5 +1,5 @@ -

last updated on 2020-08-09 for Ballistica version 1.5.24 build 20164

+

last updated on 2020-08-09 for Ballistica version 1.5.25 build 20166

This page documents the Python classes and functions in the 'ba' module, which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please let me know. Happy modding!