Un rappel : les choix ne sont disponibles qu’une seule fois par défaut

Commençons par un rappel.

Si notre histoire mène le joueur plusieurs fois dans le même nœud et lui réaffiche une liste de choix, n’oubliez pas que les options que le joueur a déjà sélectionnées lors de ses précédents passages ne lui seront pas montrées de nouveau. Pour remédier à cela, il suffit de remplacer l’astérisque par un symbole « plus ».

Considérons cet exemple. Trouvez-vous le problème ?

Vous vous tenez devant le bureau de votre rival de toujours. Le document secret doit bien se trouver quelque part.
-> bureau

=== bureau ===

*   [Regarder dans la paperasse]
    Vous fouillez la pile de papier. Rien.
    -> bureau
*   [Ouvrir le tiroir du haut]
    Vous ouvrez le premier tiroir. Après une rapide inspection, vous ne trouvez que des factures.
    -> bureau
*   [Ouvrir le tiroir du bas]
    Vous ouvrez le second tiroir, qui se révèle être vide.
    -> bureau

Quand le joueur n’a plus le choix

Si vous avez convenablement testé l’exemple, vous aurez remarqué qu’une erreur a lieu quand tous les choix ont été faits. C’est normal, car ink ne sait plus où aller ensuite.

Il est alors possible d’ajouter un choix de secours (« fallback choice ») : il s’agit d’une option qui ne sera jamais proposée au joueur mais qu’ink sélectionnera automatiquement si tout le reste a déjà été choisi.

Pour cela, il faut créer un choix sans texte, avec comme seul contenu une flèche de déviation. Si la flèche est suivie par le nom d’un nœud, alors on sera dévié vers ce nœud ; s’il n’y a que la flèche, alors il est possible d’écrire une réponse, comme pour un choix normal.

Vous vous tenez devant le bureau de votre rival de toujours. Le document secret doit bien se trouver quelque part.
-> bureau

=== bureau ===

*   [Regarder dans la paperasse]
    Vous fouillez la pile de papier. Rien.
    -> bureau
*   [Ouvrir le tiroir du haut]
    Vous ouvrez le premier tiroir. Après une rapide inspection, vous ne trouvez que des factures.
    -> bureau
*   [Ouvrir le tiroir du bas]
    Vous ouvrez le second tiroir, qui se révèle être vide.
    -> bureau
*   -> a_suivre

=== a_suivre ===

Vous entendez des pas dans le couloir. Votre rival revient ! Vous vous enfuyez par la fenêtre. Tant pis pour le document !

À suivre…
-> END

Ce qui est équivalent à :

Vous vous tenez devant le bureau de votre rival de toujours. Le document secret doit bien se trouver quelque part.
-> bureau

=== bureau ===

*   [Regarder dans la paperasse]
    Vous fouillez la pile de papier. Rien.
    -> bureau
*   [Ouvrir le tiroir du haut]
    Vous ouvrez le premier tiroir. Après une rapide inspection, vous ne trouvez que des factures.
    -> bureau
*   [Ouvrir le tiroir du bas]
    Vous ouvrez le second tiroir, qui se révèle être vide.
    -> bureau
    // Notez la déviation vide.
*   ->
    Vous entendez des pas dans le couloir. Votre rival revient ! Vous vous enfuyez par la fenêtre. Tant pis pour le document !
    À suivre…
    -> END

N’hésitez pas à tester pour bien comprendre.

Notez que cette option de secours n’échappe pas à la règle : si elle a déjà été déclenchée plus tôt car tous les autres choix avaient été épuisés, alors elle ne sera plus utilisable une seconde fois, et l’on se retrouvera avec la même erreur qu’auparavant. On peut remplacer l’astérisque par un plus, comme pour un choix normal, pour rendre l’option de secours réutilisable.

Des options conditionnelles

Comme pour du texte normal, il est possible de n’afficher des choix que sous certaines conditions. Le plus simple est de vérifier si le joueur est déjà passé — ou pas — dans un nœud particulier. Il faut pour cela mettre le nom du nœud entre accolades juste avant son texte. Si le nœud a été vu, le choix s’affichera, et vice-versa.

*   [Regarder dans la paperasse]
    // …
*   [Ouvrir le tiroir du haut]
    // …
*   [Ouvrir le tiroir du bas]
    // …
*   {apprendre_cachette} [Localiser le tiroir secret]
    // …

Ici, la dernière option ne sera affichée que si le nœud apprendre_cachette a été visité.

Pour vérifier si le nœud n’a pas été visité, il suffit de le précéder par not :

*   {not apprendre_cachette} [Essayer de trouver un emplacement secret, s'il y en a]

Enfin, il est possible de tester plusieurs conditions à la fois ; il faudra alors qu’elles soient toutes vraies pour que le choix soit montré.

*   {apprendre_cachette} {trouver_clef} [Utiliser la clef pour ouvrir le tiroir secret]

Il est bien sûr possible de faire des tests plus compliqué (sur l’argent du héros, ses points de vie…) mais il faudra pour cela utiliser des variables. Ce sera donc pour un prochain tutoriel.

La syntaxe pour des choix conditionnels est la même que pour les listes (voir le tutoriel précédent). Il possible d’insérer du texte qui varie dans le texte d’une option, mais pas au début, sinon ink confondra la liste avec une condition.

Conclusion

Avec ce que nous avons couvert jusqu’à maintenant, il est possible d’écrire des histoires assez complexes. La prochaine fois, nous verrons comment mieux organiser ce que nous avons écrit, avant de passer aux fonctionnalités avancées (mais les plus intéressantes !) d’ink.

Bonne écriture !