53 lines
2.2 KiB
Python
53 lines
2.2 KiB
Python
from rio import Column, Component, event, TextStyle, Text, Spacer
|
||
|
||
from src.ezgg_lan_manager import ConfigurationService
|
||
from src.ezgg_lan_manager.components.MainViewContentBox import MainViewContentBox
|
||
|
||
RULES: list[str] = [
|
||
"Den Anweisungen der Turnierleitung ist stets Folge zu leisten.",
|
||
"Teilnehmer müssen aktiv dafür sorgen, dass Spiele ohne Verzögerungen stattfinden.",
|
||
"Unvollständige Teams werden ggf. zum Turnierstart entfernt.",
|
||
"Verzögerungen und Ausfälle sind er Turnierleitung sofort zu melden.",
|
||
"Jeder Spieler erstellt Screenshots am Rundenende zur Ergebnisdokumentation.",
|
||
"Der Verlierer trägt das Ergebnis ein, der Gewinner überprüft es.",
|
||
"Bei fehlendem oder falschem Ergebnis, ist sofort die Turnierorganisation zu informieren.",
|
||
"Von 02:00–11:00 Uhr besteht keine Spielpflicht",
|
||
"Täuschung, Falschangaben sowie Bugusing und Cheaten führen zur sofortigen Disqualifikation."
|
||
]
|
||
|
||
class TournamentRulesPage(Component):
|
||
@event.on_populate
|
||
async def on_populate(self) -> None:
|
||
await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Turnierregeln")
|
||
|
||
def build(self) -> Component:
|
||
return Column(
|
||
MainViewContentBox(
|
||
Column(
|
||
Text(
|
||
text="Turnierregeln",
|
||
style=TextStyle(
|
||
fill=self.session.theme.background_color,
|
||
font_size=1.2
|
||
),
|
||
margin_top=2,
|
||
margin_bottom=2,
|
||
align_x=0.5
|
||
),
|
||
*[Text(
|
||
f"{idx + 1}. {rule}",
|
||
style=TextStyle(
|
||
fill=self.session.theme.background_color,
|
||
font_size=0.9
|
||
),
|
||
margin_bottom=0.8,
|
||
margin_left=1,
|
||
margin_right=1,
|
||
overflow="wrap"
|
||
) for idx, rule in enumerate(RULES)],
|
||
Spacer(min_height=1)
|
||
)
|
||
),
|
||
Spacer(grow_y=True)
|
||
)
|