vh-bombsquad-modded-server-.../dist/ba_data/python/bastd/ui/coop/level.py

79 lines
2.3 KiB
Python
Raw Normal View History

2024-02-26 00:17:10 +05:30
# Released under the MIT License. See LICENSE for details.
#
"""Bits of utility functionality related to co-op levels."""
from __future__ import annotations
import ba
class CoopLevelLockedWindow(ba.Window):
"""Window showing that a level is locked."""
def __init__(self, name: ba.Lstr, dep_name: ba.Lstr):
width = 550.0
height = 250.0
lock_tex = ba.gettexture('lock')
uiscale = ba.app.ui.uiscale
super().__init__(
root_widget=ba.containerwidget(
size=(width, height),
transition='in_right',
scale=(
1.7
if uiscale is ba.UIScale.SMALL
else 1.3
if uiscale is ba.UIScale.MEDIUM
else 1.0
),
)
)
ba.textwidget(
parent=self._root_widget,
position=(150 - 20, height * 0.63),
size=(0, 0),
h_align='left',
v_align='center',
text=ba.Lstr(
resource='levelIsLockedText', subs=[('${LEVEL}', name)]
),
maxwidth=400,
color=(1, 0.8, 0.3, 1),
scale=1.1,
)
ba.textwidget(
parent=self._root_widget,
position=(150 - 20, height * 0.48),
size=(0, 0),
h_align='left',
v_align='center',
text=ba.Lstr(
resource='levelMustBeCompletedFirstText',
subs=[('${LEVEL}', dep_name)],
),
maxwidth=400,
color=ba.app.ui.infotextcolor,
scale=0.8,
)
ba.imagewidget(
parent=self._root_widget,
position=(56 - 20, height * 0.39),
size=(80, 80),
texture=lock_tex,
opacity=1.0,
)
btn = ba.buttonwidget(
parent=self._root_widget,
position=((width - 140) / 2, 30),
size=(140, 50),
label=ba.Lstr(resource='okText'),
on_activate_call=self._ok,
)
ba.containerwidget(
edit=self._root_widget, selected_child=btn, start_button=btn
)
ba.playsound(ba.getsound('error'))
def _ok(self) -> None:
ba.containerwidget(edit=self._root_widget, transition='out_left')