La navigation principale de notre jeu est maintenant faite. Il faut maintenant s’attaquer aux différentes variations que l’on souhaite introduire dans le “game play”. Commençons par la décision dépendant d’une action précédente (par exemple, est-ce qu’une clé fut trouvée).

Requis

  1. Créez une variable correspondant à l’état de votre élément, par exemple: let keyFounded = false; afin d'indiquer que la clé n’est pas encore trouvée en début de partie.

    Dans cet exemple, la variable est un booléen, mais elle aurait pu être un nombre (points de vie restants, temps restant, etc.), une chaine de caractère (un nom, un lieu, etc.).

  2. Créez-vous ensuite une nouvelle fonction gérant l'état de votre variable (vous pouvez la nommer à votre guise). À l’intérieur de celle-ci, changez la valeur de votre variable. Par exemple: keyFounded = true; afin de signaler que la clé est maintenant trouvée. Toujours dans celle-ci, appelez via la fonction “goToChapter” du chapitre suivant dans votre diagramme.

    Ainsi, lorsque cette fonction est appelée elle devrait agir de façon similaire à “goToChapter” à la différence près qu'elle changera une variable au passage.

  3. Lorsque votre variable doit changer, plutôt que d'appeler “goToChapter” directement, appelez votre nouvelle fonction. Le résultat devrait rester le même en surface, mais en arrière-plan votre variable devrait changer.

  4. Il faut maintenant gérer son impact de votre variable sur l’histoire. Pour ce faire, créez-vous une nouvelle fonction (encore une fois, vous pouvez la nommer à votre guise). À l’intérieur de celle-ci, faites une condition basée sur votre variable. Si la condition est remplie, appelez la fonction “goToChapter” menant au chapitre positif. Si la condition n’est pas remplie, appelez quand même votre fonction “goToChapter”, mais pointez plutôt vers le chapitre négatif.

  5. Dans votre objet “chaptersObj”, remplacer l’appel de la fonction “goToChapter” toujours en faveur du joueur, par votre nouvelle fonction tenant compte de votre variable et voilà, le destin du joueur à cette étape dépend maintenant de l'une de ses actions précédentes ✨.

  6. Faite de même pour toutes les actions dépendant d'une décision précédente dans votre histoire.

Remise

Poussez vos modifications sur la branche "main" de votre projet GitHub.
C'est tout!

Notes de cours 📚