binaries update to 1.6.4

This commit is contained in:
imayushsaini 2021-06-26 13:48:13 +05:30
parent 02ec976174
commit d26d5a2102
986 changed files with 218181 additions and 206 deletions

View file

@ -1,5 +1,5 @@
# Released under the MIT License. See LICENSE for details.
"""Enums generated by tools/update_python_enums_module in ba-internal."""
"""Enum vals generated by batools.pythonenumsmodule; do not edit by hand."""
from enum import Enum

View file

@ -29,6 +29,27 @@ def get_device_value(device: ba.InputDevice, name: str) -> Any:
subplatform = app.subplatform
appconfig = _ba.app.config
# iiRcade: hard-code for a/b/c/x for now...
if _ba.app.iircade_mode:
return {
'triggerRun2': 19,
'unassignedButtonsRun': False,
'buttonPickUp': 100,
'buttonBomb': 98,
'buttonJump': 97,
'buttonStart': 83,
'buttonStart2': 109,
'buttonPunch': 99,
'buttonRun2': 102,
'buttonRun1': 101,
'triggerRun1': 18,
'buttonLeft': 22,
'buttonRight': 23,
'buttonUp': 20,
'buttonDown': 21,
'buttonVRReorient': 110
}.get(name, -1)
# If there's an entry in our config for this controller, use it.
if 'Controllers' in appconfig:
ccfgs = appconfig['Controllers']

View file

@ -32,10 +32,14 @@ class JoinInfo:
from ba._nodeactor import NodeActor
from ba._general import WeakCall
self._state = 0
self._press_to_punch: Union[str, ba.Lstr] = _ba.charstr(
SpecialChar.LEFT_BUTTON)
self._press_to_bomb: Union[str, ba.Lstr] = _ba.charstr(
SpecialChar.RIGHT_BUTTON)
self._press_to_punch: Union[str,
ba.Lstr] = ('C' if _ba.app.iircade_mode
else _ba.charstr(
SpecialChar.LEFT_BUTTON))
self._press_to_bomb: Union[str,
ba.Lstr] = ('B' if _ba.app.iircade_mode else
_ba.charstr(
SpecialChar.RIGHT_BUTTON))
self._joinmsg = Lstr(resource='pressAnyButtonToJoinText')
can_switch_teams = (len(lobby.sessionteams) > 1)

View file

@ -71,18 +71,20 @@ def get_all_tips() -> List[str]:
('You can judge when a bomb is going to explode based on the\n'
'color of sparks from its fuse: yellow..orange..red..BOOM.'),
]
tips += [
'If your framerate is choppy, try turning down resolution\nor '
'visuals in the game\'s graphics settings.'
]
app = _ba.app
if app.platform in ('android', 'ios') and not app.on_tv:
if not app.iircade_mode:
tips += [
'If your framerate is choppy, try turning down resolution\nor '
'visuals in the game\'s graphics settings.'
]
if (app.platform in ('android', 'ios') and not app.on_tv
and not app.iircade_mode):
tips += [
('If your device gets too warm or you\'d like to conserve '
'battery power,\nturn down "Visuals" or "Resolution" '
'in Settings->Graphics'),
]
if app.platform in ['mac', 'android']:
if app.platform in ['mac', 'android'] and not app.iircade_mode:
tips += [
'Tired of the soundtrack? Replace it with your own!'
'\nSee Settings->Audio->Soundtrack'
@ -90,7 +92,7 @@ def get_all_tips() -> List[str]:
# Hot-plugging is currently only on some platforms.
# FIXME: Should add a platform entry for this so don't forget to update it.
if app.platform in ['mac', 'android', 'windows']:
if app.platform in ['mac', 'android', 'windows'] and not app.iircade_mode:
tips += [
'Players can join and leave in the middle of most games,\n'
'and you can also plug and unplug controllers on the fly.',

View file

@ -39,7 +39,6 @@ class PrivateHostingState:
"""Combined state of whether we're hosting, whether we can, etc."""
unavailable_error: Optional[str] = None
party_code: Optional[str] = None
able_to_host: bool = False
tickets_to_host_now: int = 0
minutes_until_free_host: Optional[float] = None
free_host_minutes_remaining: Optional[float] = None

View file

@ -57,6 +57,34 @@ class ControlsGuide(ba.Actor):
self._update_timer: Optional[ba.Timer] = None
self._title_text: Optional[ba.Node]
clr: Sequence[float]
extra_pos_1: Optional[Tuple[float, float]]
extra_pos_2: Optional[Tuple[float, float]]
if ba.app.iircade_mode:
xtweak = 0.2
ytweak = 0.2
jump_pos = (position[0] + offs * (-1.2 + xtweak),
position[1] + offs * (0.1 + ytweak))
bomb_pos = (position[0] + offs * (0.0 + xtweak),
position[1] + offs * (0.5 + ytweak))
punch_pos = (position[0] + offs * (1.2 + xtweak),
position[1] + offs * (0.5 + ytweak))
pickup_pos = (position[0] + offs * (-1.4 + xtweak),
position[1] + offs * (-1.2 + ytweak))
extra_pos_1 = (position[0] + offs * (-0.2 + xtweak),
position[1] + offs * (-0.8 + ytweak))
extra_pos_2 = (position[0] + offs * (1.0 + xtweak),
position[1] + offs * (-0.8 + ytweak))
self._force_hide_button_names = True
else:
punch_pos = (position[0] - offs * 1.1, position[1])
jump_pos = (position[0], position[1] - offs)
bomb_pos = (position[0] + offs * 1.1, position[1])
pickup_pos = (position[0], position[1] + offs)
extra_pos_1 = None
extra_pos_2 = None
self._force_hide_button_names = False
if show_title:
self._title_text_pos_top = (position[0],
position[1] + 139.0 * scale)
@ -79,7 +107,7 @@ class ControlsGuide(ba.Actor):
})
else:
self._title_text = None
pos = (position[0], position[1] - offs)
pos = jump_pos
clr = (0.4, 1, 0.4)
self._jump_image = ba.newnode(
'image',
@ -104,8 +132,8 @@ class ControlsGuide(ba.Actor):
'position': (pos[0], pos[1] - offs5),
'color': clr
})
pos = (position[0] - offs * 1.1, position[1])
clr = (0.2, 0.6, 1) if ouya else (1, 0.7, 0.3)
pos = punch_pos
self._punch_image = ba.newnode(
'image',
attrs={
@ -129,7 +157,7 @@ class ControlsGuide(ba.Actor):
'position': (pos[0], pos[1] - offs5),
'color': clr
})
pos = (position[0] + offs * 1.1, position[1])
pos = bomb_pos
clr = (1, 0.3, 0.3)
self._bomb_image = ba.newnode(
'image',
@ -154,7 +182,7 @@ class ControlsGuide(ba.Actor):
'position': (pos[0], pos[1] - offs5),
'color': clr
})
pos = (position[0], position[1] + offs)
pos = pickup_pos
clr = (1, 0.8, 0.3) if ouya else (0.8, 0.5, 1)
self._pickup_image = ba.newnode(
'image',
@ -208,6 +236,36 @@ class ControlsGuide(ba.Actor):
'h_align': 'center',
'color': clr
})
if extra_pos_1 is not None:
self._extra_image_1: Optional[ba.Node] = ba.newnode(
'image',
attrs={
'texture': ba.gettexture('nub'),
'absolute_scale': True,
'host_only': True,
'vr_depth': 10,
'position': extra_pos_1,
'scale': (image_size, image_size),
'color': (0.5, 0.5, 0.5)
})
else:
self._extra_image_1 = None
if extra_pos_2 is not None:
self._extra_image_2: Optional[ba.Node] = ba.newnode(
'image',
attrs={
'texture': ba.gettexture('nub'),
'absolute_scale': True,
'host_only': True,
'vr_depth': 10,
'position': extra_pos_2,
'scale': (image_size, image_size),
'color': (0.5, 0.5, 0.5)
})
else:
self._extra_image_2 = None
self._nodes = [
self._bomb_image, self._bomb_text, self._punch_image,
self._punch_text, self._jump_image, self._jump_text,
@ -217,6 +275,10 @@ class ControlsGuide(ba.Actor):
if show_title:
assert self._title_text
self._nodes.append(self._title_text)
if self._extra_image_1 is not None:
self._nodes.append(self._extra_image_1)
if self._extra_image_2 is not None:
self._nodes.append(self._extra_image_2)
# Start everything invisible.
for node in self._nodes:
@ -408,6 +470,12 @@ class ControlsGuide(ba.Actor):
('${D}', down_text), ('${R}', right_text),
('${RUN}', run_text)])
if self._force_hide_button_names:
jump_button_names.clear()
punch_button_names.clear()
bomb_button_names.clear()
pickup_button_names.clear()
self._run_text.text = run_text
w_text: Union[ba.Lstr, str]
if only_remote and self._lifespan is None:

View file

@ -31,10 +31,12 @@ class AboutGatherTab(GatherTab):
region_left: float,
region_bottom: float,
) -> ba.Widget:
party_button_label = ('X' if ba.app.iircade_mode else ba.charstr(
ba.SpecialChar.TOP_BUTTON))
message = ba.Lstr(
resource='gatherWindow.aboutDescriptionText',
subs=[('${PARTY}', ba.charstr(ba.SpecialChar.PARTY_ICON)),
('${BUTTON}', ba.charstr(ba.SpecialChar.TOP_BUTTON))],
('${BUTTON}', party_button_label)],
)
# Let's not talk about sharing in vr-mode; its tricky to fit more

View file

@ -13,6 +13,7 @@ from bastd.ui.gather import GatherTab
import _ba
import ba
if TYPE_CHECKING:
from typing import Any, Optional, Dict, List, Tuple, Type, Union, Callable
from bastd.ui.gather import GatherWindow
@ -87,8 +88,10 @@ class ManualGatherTab(GatherTab):
self._scrollwidget: Optional[ba.Widget] = None
self._columnwidget: Optional[ba.Widget] = None
self._favorite_selected: Optional[str] = None
self._favorite_rename_window: Optional[ba.Widget] = None
self._party_rename_text: Optional[ba.Widget] = None
self._favorite_edit_window: Optional[ba.Widget] = None
self._party_edit_name_text: Optional[ba.Widget] = None
self._party_edit_addr_text: Optional[ba.Widget] = None
self._party_edit_port_text: Optional[ba.Widget] = None
def on_activate(
self,
@ -349,9 +352,9 @@ class ManualGatherTab(GatherTab):
button_type='square',
color=(0.6, 0.53, 0.63),
textcolor=(0.75, 0.7, 0.8),
on_activate_call=self._on_favorites_rename_press,
on_activate_call=self._on_favorites_edit_press,
text_scale=1.0 if uiscale is ba.UIScale.SMALL else 1.2,
label=ba.Lstr(resource='renameText'),
label=ba.Lstr(resource='editText'),
autoselect=True)
btnv -= b_height + b_space_extra
ba.buttonwidget(parent=self._container,
@ -399,15 +402,15 @@ class ManualGatherTab(GatherTab):
call=ba.WeakCall(
self._host_lookup_result)).start()
def _on_favorites_rename_press(self) -> None:
def _on_favorites_edit_press(self) -> None:
if self._favorite_selected is None:
self._no_favorite_selected_error()
return
c_width = 600
c_height = 250
c_height = 310
uiscale = ba.app.ui.uiscale
self._favorite_rename_window = cnt = ba.containerwidget(
self._favorite_edit_window = cnt = ba.containerwidget(
scale=(1.8 if uiscale is ba.UIScale.SMALL else
1.55 if uiscale is ba.UIScale.MEDIUM else 1.0),
size=(c_width, c_height),
@ -417,22 +420,84 @@ class ManualGatherTab(GatherTab):
size=(0, 0),
h_align='center',
v_align='center',
text='Enter Name of Party',
text=ba.Lstr(resource='editText'),
color=(0.6, 1.0, 0.6),
maxwidth=c_width * 0.8,
position=(c_width * 0.5, c_height - 60))
self._party_rename_text = txt = ba.textwidget(
ba.textwidget(parent=cnt,
position=(c_width * 0.2 - 15, c_height - 120),
color=(0.6, 1.0, 0.6),
scale=1.0,
size=(0, 0),
maxwidth=60,
h_align='right',
v_align='center',
text=ba.Lstr(resource='nameText'))
self._party_edit_name_text = ba.textwidget(
parent=cnt,
size=(c_width * 0.8, 40),
size=(c_width * 0.7, 40),
h_align='left',
v_align='center',
text=ba.app.config['Saved Servers'][
self._favorite_selected]['name'],
editable=True,
description='Server name text',
position=(c_width * 0.1, c_height - 140),
description=ba.Lstr(resource='nameText'),
position=(c_width * 0.2, c_height - 140),
autoselect=True,
maxwidth=c_width * 0.7,
maxwidth=c_width * 0.6,
max_chars=200)
ba.textwidget(parent=cnt,
position=(c_width * 0.2 - 15, c_height - 180),
color=(0.6, 1.0, 0.6),
scale=1.0,
size=(0, 0),
maxwidth=60,
h_align='right',
v_align='center',
text=ba.Lstr(resource='gatherWindow.'
'manualAddressText'))
self._party_edit_addr_text = ba.textwidget(
parent=cnt,
size=(c_width * 0.4, 40),
h_align='left',
v_align='center',
text=ba.app.config['Saved Servers'][
self._favorite_selected]['addr'],
editable=True,
description=ba.Lstr(resource='gatherWindow.manualAddressText'),
position=(c_width * 0.2, c_height - 200),
autoselect=True,
maxwidth=c_width * 0.35,
max_chars=200)
ba.textwidget(parent=cnt,
position=(c_width * 0.7 - 10, c_height - 180),
color=(0.6, 1.0, 0.6),
scale=1.0,
size=(0, 0),
maxwidth=45,
h_align='right',
v_align='center',
text=ba.Lstr(resource='gatherWindow.'
'portText'))
self._party_edit_port_text = ba.textwidget(
parent=cnt,
size=(c_width * 0.2, 40),
h_align='left',
v_align='center',
text=str(ba.app.config['Saved Servers'][self._favorite_selected]
['port']),
editable=True,
description=ba.Lstr(resource='gatherWindow.portText'),
position=(c_width * 0.7, c_height - 200),
autoselect=True,
maxwidth=c_width * 0.2,
max_chars=6)
cbtn = ba.buttonwidget(
parent=cnt,
label=ba.Lstr(resource='cancelText'),
@ -443,32 +508,40 @@ class ManualGatherTab(GatherTab):
position=(30, 30),
autoselect=True)
okb = ba.buttonwidget(parent=cnt,
label='Rename',
label=ba.Lstr(resource='saveText'),
size=(180, 60),
position=(c_width - 230, 30),
on_activate_call=ba.Call(
self._rename_saved_party),
on_activate_call=ba.Call(self._edit_saved_party),
autoselect=True)
ba.widget(edit=cbtn, right_widget=okb)
ba.widget(edit=okb, left_widget=cbtn)
ba.textwidget(edit=txt, on_return_press_call=okb.activate)
ba.containerwidget(edit=cnt, cancel_button=cbtn, start_button=okb)
def _rename_saved_party(self) -> None:
def _edit_saved_party(self) -> None:
server = self._favorite_selected
if self._favorite_selected is None:
self._no_favorite_selected_error()
return
if not self._party_rename_text:
if not self._party_edit_name_text or not self._party_edit_addr_text:
return
new_name_raw = cast(str, ba.textwidget(query=self._party_rename_text))
new_name_raw = cast(str,
ba.textwidget(query=self._party_edit_name_text))
new_addr_raw = cast(str,
ba.textwidget(query=self._party_edit_addr_text))
new_port_raw = cast(str,
ba.textwidget(query=self._party_edit_port_text))
ba.app.config['Saved Servers'][server]['name'] = new_name_raw
ba.app.config['Saved Servers'][server]['addr'] = new_addr_raw
try:
ba.app.config['Saved Servers'][server]['port'] = int(new_port_raw)
except ValueError:
# Notify about incorrect port? I'm lazy; simply leave old value.
pass
ba.app.config.commit()
ba.playsound(ba.getsound('gunCocking'))
self._refresh_favorites()
ba.containerwidget(edit=self._favorite_rename_window,
ba.containerwidget(edit=self._favorite_edit_window,
transition='out_scale')
def _on_favorite_delete_press(self) -> None:

View file

@ -256,7 +256,10 @@ class PrivateGatherTab(GatherTab):
self._debug_server_comm('querying private party state')
if _ba.get_account_state() == 'signed_in':
_ba.add_transaction(
{'type': 'PRIVATE_PARTY_QUERY'},
{
'type': 'PRIVATE_PARTY_QUERY',
'expire_time': time.time() + 20,
},
callback=ba.WeakCall(
self._hosting_state_idle_response),
)
@ -761,6 +764,7 @@ class PrivateGatherTab(GatherTab):
_ba.add_transaction(
{
'type': 'PRIVATE_PARTY_CONNECT',
'expire_time': time.time() + 20,
'code': code
},
callback=ba.WeakCall(self._connect_response),
@ -806,15 +810,19 @@ class PrivateGatherTab(GatherTab):
'type': 'PRIVATE_PARTY_START',
'config': dataclass_to_dict(self._hostingconfig),
'region_pings': ba.app.net.region_pings,
'expire_time': time.time() + 20,
},
callback=ba.WeakCall(self._hosting_state_response))
_ba.run_transactions()
else:
self._last_action_send_time = time.time()
_ba.add_transaction({'type': 'PRIVATE_PARTY_STOP'},
callback=ba.WeakCall(
self._hosting_state_response))
_ba.add_transaction(
{
'type': 'PRIVATE_PARTY_STOP',
'expire_time': time.time() + 20,
},
callback=ba.WeakCall(self._hosting_state_response))
_ba.run_transactions()
ba.playsound(ba.getsound('click01'))

Some files were not shown because too many files have changed in this diff Show more