# 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

Imaginez une scène de taverne : si le joueur a déjà rencontré le tavernier, le texte dit "Le tavernier vous reconnaît et vous salue chaleureusement". Sinon, il dit "Un homme bourru vous dévisage derrière le comptoir". Tout cela dans la même étape.

# 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 :

Syntaxe de base
{{#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 variableOpérateurs disponibles
Numérique= , != , > , < , >= , <=
Booléen= , !=
Texte= , != , contient
Le bloc else est optionnel

Vous n'êtes pas obligé d'inclure un bloc {{#else}}. Si aucune condition n'est remplie et qu'il n'y a pas de {{#else}}, rien ne s'affiche à cet endroit — le texte environnant se referme naturellement.

# Exemples pratiques

Exemple avec booléen
{{#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}}
Exemple avec numérique et elseif
{{#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.

Exemple accessibleChildren
{{#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.

Exemple minutesOnStep
{{#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.

Exemple currentStepVisitCount
{{#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.

Exemple stepVisited_{id}
{{#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 !=.

Exemple playerGender
{{#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 ?

L'identifiant de chaque étape est visible dans l'éditeur, dans l'en-tête de l'étape. Vous pouvez aussi le retrouver dans le NodeFlow en survolant un nœud.


# Récapitulatif des variables système

VariableTypeDescription
accessibleChildrenNumériqueNombre de choix accessibles depuis l'étape en cours
minutesOnStepNumériqueMinutes passées par le joueur sur l'étape actuelle
currentStepVisitCountNumériqueNombre de visites de l'étape actuelle
stepVisited_{id}Booléentrue si l'étape {id} a déjà été visitée
Variables en lecture seule

Les variables système sont calculées automatiquement et ne peuvent pas être modifiées par des actions. Elles sont disponibles uniquement en lecture dans les conditions et le texte conditionnel.