# Variables avancées
Le système de variables de Livre Arbitre va bien au-delà des simples compteurs. Ce guide approfondit les actions, les conditions complexes, les opérateurs de comparaison et les techniques avancées pour créer des récits véritablement dynamiques.
# Actions sur les variables en détail
Lorsque le lecteur atteint une étape, vous pouvez déclencher des actions qui modifient les valeurs de vos variables. Quatre types d'actions sont disponibles :
| Action | Code | Description | Exemple |
|---|---|---|---|
| Ajouter | add | Ajoute une valeur à la variable | or + 50 = 150 |
| Soustraire | minus | Soustrait une valeur de la variable | points_vie - 20 = 80 |
| Assigner | set | Remplace la valeur actuelle | faction = "Rebelles" |
| Assigner une fois | setOnce | Assigne uniquement si la variable n'a jamais été modifiée | premier_choix = "diplomatie" |
setOnce est précieux
# Combinaisons de conditions complexes
Les conditions sur les liens entre étapes ne se limitent pas aux variables. Vous pouvez combiner plusieurs types de conditions pour créer des scénarios sophistiqués. Les conditions disponibles sont :
| Type de condition | Code | Description |
|---|---|---|
| Période horaire | TimeOfDayPeriod | Le choix n'est disponible qu'à certaines heures |
| Déblocage personnage | CharacterUnlock | Le choix nécessite d'avoir débloqué un détail de personnage |
| Délai après | DelayAfter | Le choix apparaît après un délai en minutes |
| Délai avant | DelayBefore | Le choix disparaît après un certain temps |
| Déblocage élément | ElementUnlock | Le choix nécessite de posséder un élément |
| Étape lue | StepRead | Le choix nécessite d'avoir lu une étape spécifique |
| Événement lu | EventRead | Le choix nécessite d'avoir reçu un événement |
| Joueur actuel | CurrentPlayer | Le choix est réservé à un joueur spécifique |

Attention aux combinaisons trop restrictives
# Opérateurs de comparaison
Pour les conditions basées sur les variables, vous disposez de plusieurs opérateurs de comparaison :
| Opérateur | Code | Description | Exemple |
|---|---|---|---|
| Égal à | eq | La variable doit être exactement égale à la valeur | faction eq "Rebelles" |
| Plus petit que | lt | La variable doit être strictement inférieure | points_vie lt 20 |
| Plus grand que | gt | La variable doit être strictement supérieure | or gt 100 |
| Plus petit ou égal | let | La variable doit être inférieure ou égale | energie let 50 |
| Plus grand ou égal | get | La variable doit être supérieure ou égale | reputation get 75 |
# Variables partagées et privées en multijoueur
En mode multijoueur, la portée des variables devient un outil stratégique essentiel. Comprendre la différence entre variables partagées et privées est crucial pour créer des expériences multijoueurs cohérentes.
- Variables privées — Chaque joueur possède sa propre instance de la variable. Idéal pour l'inventaire individuel, les points de vie, les choix personnels
- Variables partagées — Tous les joueurs partagent la même valeur. Idéal pour l'état du monde, les portes ouvertes, les quêtes communes
- Impact stratégique — Une variable partagée modifiée par un joueur affecte immédiatement tous les autres joueurs
Scénario coopératif
# Insertion de variables dans le contenu
Les variables peuvent être insérées directement dans le texte de vos étapes grâce à la syntaxe {{nom_variable}}. Au moment de la lecture, les doubles accolades sont remplacées par la valeur actuelle de la variable.
- Personnalisation du texte — "Bienvenue, {{FirstName}} ! Vous avez {{or}} pièces d'or."
- Narration dynamique — "Vous êtes membre des {{faction}} depuis {{jours_membre}} jours."
- Dialogues personnalisés — "{{PlayerFirstName:2}} vous regarde avec méfiance."
# Variables système
En plus de vos variables personnalisées, Livre Arbitre met à disposition des variables système prêtes à l'emploi :
| Variable | Description | Exemple de rendu |
|---|---|---|
| FirstName | Prénom du lecteur | Marie |
| LastName | Nom du lecteur | Dupont |
| FullName | Prénom et nom complets | Marie Dupont |
| Age | Âge du lecteur | 28 |
| CurrentTime | Heure actuelle du lecteur | 14:35 |
| PlayerFirstName:X | Prénom du joueur X (multijoueur) | Lucas |
Immersion maximale
# Déboguer les variables
Tester les différents scénarios liés aux variables est essentiel pour garantir une expérience de lecture fluide. Voici les bonnes pratiques pour déboguer vos variables :
- Testez chaque chemin — Parcourez tous les embranchements pour vérifier que les variables sont correctement modifiées
- Vérifiez les valeurs limites — Testez les cas où une variable atteint 0, son maximum ou une valeur inattendue
- Contrôlez les conditions — Assurez-vous que les conditions de vos liens fonctionnent avec différentes combinaisons de variables
- Utilisez la prévisualisation — La prévisualisation de l'éditeur permet de voir le rendu des variables sans lancer une lecture complète
- Documentez vos variables — Utilisez les descriptions internes pour noter le rôle et la plage de valeurs de chaque variable
