# Le texte conditionnel
Le texte conditionnel permet d'afficher ou de masquer des portions de texte à l'intérieur d'une étape en fonction de la valeur d'une variable. Au lieu de créer plusieurs étapes pour chaque variante, vous écrivez tout dans une seule étape et le système affiche le bon paragraphe au bon moment.
Un texte vivant
# La syntaxe if / elseif / else
Dans l'éditeur de contenu d'une étape, vous pouvez insérer des blocs conditionnels en utilisant la syntaxe suivante :
{{#if variable_name operator value}}
Texte affiché si la condition est vraie.
{{#elseif autre_variable operator value}}
Texte affiché si la première condition est fausse mais celle-ci est vraie.
{{#else}}
Texte affiché si aucune condition n'est remplie.
{{/if}}Les opérateurs disponibles dépendent du type de la variable. Le système filtre automatiquement les opérateurs compatibles :
| Type de variable | Opérateurs disponibles |
|---|---|
| Numérique | = , != , > , < , >= , <= |
| Booléen | = , != |
| Texte | = , != , contient |
Le bloc else est optionnel
# Exemples pratiques
{{#if a_rencontre_tavernier = true}}
Le tavernier vous reconnaît et vous fait signe de vous asseoir.
{{#else}}
Un homme bourru vous dévisage derrière le comptoir.
{{/if}}{{#if reputation >= 50}}
Les villageois vous acclament à votre arrivée.
{{#elseif reputation >= 20}}
Quelques regards curieux se tournent vers vous.
{{#else}}
Les habitants détournent le regard à votre passage.
{{/if}}# Les variables système
En plus des variables que vous créez manuellement, Livre Arbitre met à votre disposition des variables système calculées automatiquement. Elles sont accessibles dans les conditions de liens et dans les blocs de texte conditionnel.
# accessibleChildren
Retourne le nombre de choix actuellement accessibles depuis l'étape en cours. Cette variable est utile pour afficher un message dynamique comme "Il vous reste X options" ou pour conditionner du texte si aucun choix n'est disponible.
{{#if accessibleChildren = 0}}
Vous êtes dans une impasse. Attendez qu'un nouveau chemin s'ouvre...
{{/if}}# minutesOnStep
Retourne le nombre de minutes que le joueur a passées sur l'étape actuelle. Cette variable se met à jour en temps réel et permet de créer des textes qui évoluent avec le temps.
{{#if minutesOnStep >= 10}}
La patience commence à payer. Vous remarquez une fissure dans le mur.
{{#else}}
La pièce semble parfaitement ordinaire.
{{/if}}# currentStepVisitCount
Retourne le nombre de fois que le joueur a visité l'étape actuelle. Très utile pour les étapes de type hub que le joueur traverse plusieurs fois — vous pouvez varier le texte à chaque passage.
{{#if currentStepVisitCount = 1}}
Vous découvrez la place du village pour la première fois.
{{#elseif currentStepVisitCount = 2}}
La place du village vous semble déjà familière.
{{#else}}
Vous connaissez chaque pavé de cette place par cœur.
{{/if}}# stepVisited_{id}
Retourne true si le joueur a déjà visité l'étape dont l'identifiant est {id}, et false sinon. Remplacez {id} par l'identifiant numérique de l'étape concernée. Cette variable permet de référencer la progression du joueur dans d'autres branches de l'histoire.
{{#if stepVisited_42 = true}}
Vous reconnaissez le symbole gravé sur la porte — c'est le même que celui de la crypte.
{{/if}}# playerGender
Retourne le genre du joueur courant : male (masculin), female (féminin) ou neutral (neutre). Permet d'accorder un passage entier selon le genre, au-delà de l'insertion mot à mot {{Gender:il|elle|iel}}. Opérateurs : = et !=.
{{#if playerGender = male}}
Le marchand le toise : « Te voilà bien pressé, l'ami. »
{{#elseif playerGender = female}}
Le marchand s'incline : « Que puis-je pour vous, madame ? »
{{#else}}
Le marchand vous salue d'un signe de tête neutre.
{{/if}}Où trouver l'identifiant d'une étape ?
# Récapitulatif des variables système
| Variable | Type | Description |
|---|---|---|
| accessibleChildren | Numérique | Nombre de choix accessibles depuis l'étape en cours |
| minutesOnStep | Numérique | Minutes passées par le joueur sur l'étape actuelle |
| currentStepVisitCount | Numérique | Nombre de visites de l'étape actuelle |
| stepVisited_{id} | Booléen | true si l'étape {id} a déjà été visitée |