Zum Inhalt springen

Inhalt

Eine Textzelle auf dem Timer-Bildschirm enthält keinen festen Text. Sie zeigt auf einen benannten Inhalt, und der entscheidet, was gezeichnet wird und ob überhaupt.

Jeder Inhalt hat drei Teile:

  • Name: wonach du ihn auswählst, etwa clock, blinds, player count
  • Wert: der Text, der auf dem Timer erscheint und laufende Turnierdaten hereinholen kann
  • Bedingung: eine optionale Prüfung; solange sie falsch ist, blendet sich jede Zelle aus, die diesen Inhalt nutzt

Diese drei zu trennen ist das, was ein Layout ein ganzes Turnier lang tragen lässt. Der eingebaute Inhalt ante etwa ist daran geknüpft, dass das Level wirklich ein Standard-Ante hat. Die Ante-Zeile ist in Leveln ohne eines also schlicht nicht da, und du musst nicht für jede Turnierphase einen eigenen Bildschirm bauen.

Aus dem Bearbeitungsmodus:

  • Tippe auf + → Inhalt, um eine Textzelle einzufügen und ihren Inhalt in einem Schritt zu wählen.
  • Wähl eine vorhandene Textzelle aus und öffne ihre Einstellung Inhalt, um sie woanders hinzeigen zu lassen, oder tippe auf Bearbeiten, um den Inhalt selbst zu ändern.
  • Inhalt verwalten, aus derselben Einstellung, öffnet die vollständige Liste: jeder Inhalt, den diese Zelle sieht, egal ob der Timer ihn gerade nutzt.

Jede Liste zeigt, was von dort aus zu sehen ist, wo du gerade bist, also von der ausgewählten Zelle oder der Stelle, an der du einfügst, gruppiert danach, wo der Inhalt liegt.

Die Einstellung Inhalt im Bearbeitungs-Panel aufgeklappt, die Inhalte nach Namen mit ihren Werten darunter auflistet, der ausgewählte ist abgehakt und trägt eine Schaltfläche Bearbeiten

Innerhalb von Wert fügen doppelte geschweifte Klammern laufende Turnierdaten ein. Alles außerhalb der Klammern wird unverändert gezeigt, du kannst beides also frei mischen:

Chips im Spiel {{ totalChipsInPlay }}

Was zwischen den Klammern steht, ist ein Ausdruck, kann also rechnen und formatieren und nicht nur einen Wert benennen:

Level {{ blindLevelNumber }} von {{ blindLevelCount }}
{{ (secondsLeftInLevel * 1000).toCompactTimeDurationString }}

Eine Fußzeile unter dem Feld zeigt immer das fertige Ergebnis, du siehst also genau, was der Timer zeichnen wird. Die Sprache steht unter Skripte, alles Referenzierbare unter Turnierdaten.

Zwei Arten von Zeichenfolge werden im fertigen Text als Bild statt als Buchstaben gezeichnet, überall dort, wo sie auf dem Timer-Bildschirm auftauchen:

  • Ein Chipwert gefolgt von einem s — 25s, 1,000s — wird zu diesem Chip, mit deinen eigenen Farben oder deinem Chipfoto. Der Wert muss exakt zu einem der Chips des Turniers passen, geschrieben so, wie die App ihn schreibt, und er muss für sich stehen: Das 100s in 2,100s ist keine solche Zeichenfolge.
  • Eine Karte — A♠, 10♥ — wird zu einer kleinen umrandeten Karte, rot oder schwarz je nach Farbe.

Ein Inhalt mit diesem Wert

Tauscht die {{ colorUpChips.map(func(c) { c.value.toString + "s" }).join(" und die ") }}

zeichnet also echte Chips mitten im Satz. Genau so ist das Widget Chips tauschen! gebaut, und nichts hindert dich daran, es in einer eigenen Zeile zu verwenden.

Das Feld Bedingung nimmt dieselben Ausdrücke, aber ohne die Klammern, und es muss wahr oder falsch ergeben. Lässt du es leer, ist der Inhalt immer zu sehen.

chipLeaders.isNotEmpty
currentLevel.ante > 0 && currentLevel.bigBlind == 0

Beide Felder nutzen denselben Editor: Syntax-Hervorhebung, Zeilen- und Spaltenanzeige und Autovervollständigung. Fang an, einen Namen zu tippen, und passende Turnierwerte werden mit ihren Beschreibungen angeboten.

Der Inhalts-Editor für bb ante: ein Feld Name, über dem Feld Bedingung ein Hinweis mit dem Ergebnis true, ein Hinweis über dem Feld Wert, und unten angeheftet die Ausgabe BB Ante 30

Die Schaltfläche { } Skript-Explorer in der Symbolleiste ist der schnellste Weg, etwas zu finden. Sie listet jeden verfügbaren Wert mit Beschreibung und aktuellem Stand auf, lässt dich in Objekte wie einen Spieler oder ein Level hineingehen und kopiert einen Namen mit einem Tipp in die Zwischenablage.

Ist ein Ausdruck falsch, sagt der Editor es rot darunter, statt still zu scheitern. Eine Bedingung, die etwas anderes als wahr oder falsch liefert, wird mit Die Bedingung muss als wahr oder falsch bewertet werden. zurückgewiesen.

Inhalte liegen an einem von vier Orten, und die Listen gruppieren sie unter denselben Überschriften, den nächsten zuerst:

  • Dieses Widget: Inhalte, die ein Widget mitbringt. Nur die Zellen darin sehen sie.
  • Dieses Layout: Inhalte, die zum angezeigten Layout gehören. Alle seine Zellen sehen sie, in jedem Level, andere Layouts nicht.
  • Alle Layouts: Inhalte, die sich alle Layouts des Turniers teilen.
  • Integriert: die Inhalte, die die App mitbringt.

Ist ein Name an mehreren Orten festgelegt, gewinnt der nächste: Der eigene title eines Widgets geht dem des Layouts vor, und der dem, den sich alle Layouts teilen. Die Liste zeigt jeden Namen einmal, unter dem Ort, von dem die Zelle ihn bekommt.

Ein neuer Inhalt fragt, wohin er gehört, Dieses Layout oder Alle Layouts, und steht zunächst auf Dieses Layout. Das passt zu etwas, das ein Bildschirm braucht, etwa Platzwechsel oder eine Punktetabelle. Wähl Alle Layouts für etwas, das jeder Bildschirm zeigt, etwa den Namen deines Clubs. Inhalte unter Dieses Layout gehören zum Layout: Duplizieren kopiert sie mit, und Löschen löscht sie mit.

Eine Änderung wirkt dort, wo der Inhalt liegt, nur eingebaute Inhalte werden nie an Ort und Stelle geändert:

  • Bearbeitest du einen eingebauten Inhalt unter Integriert, bekommt dieses Turnier eine eigene Fassung unter Alle Layouts, die dann an die Stelle der mitgelieferten tritt.
  • Bearbeitest du einen eingebauten Inhalt, der unter Dieses Widget steht, bekommt dieses Widget eine eigene Kopie, und der Rest des Turniers bleibt unberührt.

Inhalte, die von dem abweichen, was die App mitbringt, stehen fett da: jeder, den du angelegt hast, und jeder eingebaute, den du geändert hast.

Der Bildschirm Inhalt verwalten listet jeden Inhalt alphabetisch mit seinem Wert darunter auf, der bearbeitete Inhalt bb ante steht fett

Wisch einen Inhalt in Inhalt verwalten nach links, um ihn dort zu löschen, wo er liegt. Zeigt eine Zelle auf dem Timer ihn von dort, warnt dich die App vorher und nennt ihn. Eingebaute Inhalte lassen sich nicht löschen.

Namen müssen unter allem eindeutig sein, was die Zelle sieht, die eingebauten Namen eingeschlossen. Du kannst also keinen zweiten clock anlegen. Bearbeite entweder clock selbst oder leg einen unter einem anderen Namen wie clock big an und richte die Zelle darauf.

Inhalte reisen mit den Zellen, die sie nutzen. Das Speichern eines Widgets legt die Inhalte seiner Zellen ins Widget, und Ausschneiden oder Kopieren einer Zelle tut dasselbe. Text, den du in ein anderes Layout oder aus einem Widget heraus einfügst, liest sich also gleich. Layouts importieren überträgt ein ganzes Aussehen, Layouts und Inhalte zusammen.

Das sind ganz normale Inhalte. Öffne einen davon, um zu sehen, wie er aufgebaut ist, oder übernimm den Ansatz für eigene.

NameWertBedingung
tournament title{{ title }}immer
title{{ currentLevel.title }}immer
break titlePauseisBreakLevel && currentLevel.title.isEmpty
level numberLevel {{ blindLevelNumber }} von {{ blindLevelCount }}isBlindsLevel
clock{{ (secondsLeftInLevel * 1000).toCompactTimeDurationString }}immer
blindsSmall / Big Blind, kompakt formatiertcurrentLevel.bigBlind > 0
anteAnte {{ (currentLevel.ante).toCompactDecimalString }}nur Standard-Antes
bb anteBB Ante {{ … }}nur Big-Blind-Antes
next level blindsdie Blinds des nächsten LevelsnextLevel.bigBlind > 0
next break time, Pause in {{ (secondsUntilNextBreak / 60).round }} Min.eine Pause steht an
player count{{ currentPlayerCount }} von {{ totalPlayerCount }} Spielernimmer
chips per playerDurchschnittlicher Stack {{ averageChipsPerPlayer.round.toCompactDecimalString }}immer
BBs in playdurchschnittliche und gesamte Stapel in Big BlindsactiveBigBlind > 0
current time{{ now().toTimeString }}immer
chip leadersdie drei größten Stapel, Namen und SummenchipLeaders.isNotEmpty
high handBesitzer, Name und Karten der HandhasHighHand
rebuy countdownRebuys enden in {{ (secondsUntilRebuysEnd * 1000).toApproximateDurationString }}!eine Rebuy-Phase läuft
rebuy countdown pausedRebuys enden nach Level {{ rebuyEndLevel }}!dasselbe, aber der Timer ist pausiert
color up titleChips tauschen!ein Tauschpunkt erreicht ist (standardmäßig eine Pause) und ein Chip entbehrlich geworden ist
color upsdie abzuräumenden Chips, gezeichnet als Chipsdasselbe
separator•immer

Pausen sind auch Level, levelIndex zählt sie also mit: Mit einer Pause dazwischen folgt auf Level 4 das Level 6. Um nur die Blind-Level zu nummerieren, nimmst du blindLevelNumber und blindLevelCount, so wie es der eingebaute Inhalt level number macht. Seine Bedingung ist isBlindsLevel, die Zelle blendet sich in Pausen also aus, statt auf dem gerade beendeten Level stehen zu bleiben.