Language updates

This commit is contained in:
Eric Froemling 2020-08-11 08:30:38 -07:00
parent 4b63f19a63
commit d58ba2f0dc
15 changed files with 71 additions and 66 deletions

View File

@ -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"
}

View File

@ -1,4 +1,4 @@
### 1.5.25 (20164)
### 1.5.25 (20165)
- Added Venetian language (thanks Federico!)
### 1.5.24 (20163)

View File

@ -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)

View File

@ -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.

View File

@ -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':

View File

@ -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.

View File

@ -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:

View File

@ -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

View File

@ -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))

View File

@ -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

View File

@ -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()

View File

@ -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):

View File

@ -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)

View File

@ -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,

View File

@ -1,5 +1,5 @@
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
<h4><em>last updated on 2020-08-09 for Ballistica version 1.5.24 build 20164</em></h4>
<h4><em>last updated on 2020-08-09 for Ballistica version 1.5.25 build 20166</em></h4>
<p>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 <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
<hr>