Table des matières
Action (personnalisée)
Une action est une routine qui s’exécute lorsque le joueur entre une commande durant une partie.
💡 Si vous souhaitez consulter les actions de base, voir cette page.
Exemple d’action simple
Cette action va s’exécuter lorsque le joueur entrera la commande sauter.
Le texte « Vous sautez sur place. » sera alors ajouté à la sortie du jeu.
action sauter: dire "Vous sautez sur place.". fin action
Exemple d’action complète
💡 ceci correspond à l’objet avec lequel le joueur interagit.
action pousser ceci: phase prérequis: si ceci n’est pas accessible, refuser "Je n’y ai pas accès.". si ceci est le joueur, refuser "Je suis dans le chemin ?". phase exécution: changer ceci est déplacé. phase épilogue: dire "Je [l’ ceci]ai poussé[es ceci] mais ça n’a servi à rien.". fin action
Les phases d’une action
Ainsi que vous pouvez le voir dans l’exemple ci-dessus, une action se compose de 3 phases : prérequis, exécution et épilogue. Elles s’exécutent dans cet ordre. Si la phase prérequis refuse l’action, les phases suivantes (exécution et épilogue) ne sont pas exécutées.
Phase prérequis
Cette phase permet de refuser l’exécution de l’action si les critères d’acceptation ne sont pas remplis. Par exemple on ne peut pas prendre un objet qui n’est pas accessible.
Phase exécution
Cette phase permet de modifier l’état du jeu en fonction de l’action qui est exécutée. Par exemple on peut déplacer un objet ou changer sa description.
Phase épilogue
Cette phase permet d’informer le joueur du résultat de l’action qui s’est exécutée. Par exemple on décrit au joueur le lieu dans lequel il s’est déplacé.
Refuser une action
Vous pouvez interrompre une action depuis la phase prérequis (ou depuis une règle avant). Deux formes :
refuser "message"
Affiche le message au joueur et stoppe l’action :
si ceci n’est pas accessible, refuser "Je n’y ai pas accès.".
refuser l’action
Stoppe l’action sans afficher de message — utile quand vous avez déjà affiché un texte contextuel avec dire juste avant :
règle avant prendre le vase Ming: dire "Le gardien lève les yeux et vous regarde fixement.". refuser l’action. fin règle
Un refus stoppe l’action complètement : les phases exécution et épilogue ne sont pas exécutées.
Définition des compléments variables d'une action
Il est possible de spécifier 1 ou 2 compléments pour une action.
Par convention, le premier sera toujours nommé « ceci » et le second « cela ».
Si vous n'écrivez pas de définition pour les compléments, il leur sera attribué une définition par défaut « ceci est un objet visible et accessible. »
Action sans complément
action sauter: dire "Vous sautez.". fin action
Action avec 1 complément (ceci)
action sauter sur ceci: définition: ceci est un support. phase épilogue: dire "vous sautez sur [intitulé ceci].". fin action
Action avec 2 compléments (ceci et cela)
action combiner ceci avec cela: définitions: ceci est un objet visible et accessible. cela est un objet visible et accessible. phase épilogue: dire "Ça n'a rien donné.". fin action
Types de cibles
À l’intérieur de définition (ou définitions au pluriel quand il y a deux compléments), vous précisez ce que le moteur doit chercher pour identifier ceci / cela :
ceci est un objet. -- n'importe quel objet ceci est un objet visible. -- objet présent et visible ceci est un objet vu et visible. -- objet déjà vu au moins une fois ceci est un support. -- objet sur lequel on peut poser ceci est un contenant. -- objet dans lequel on peut mettre ceci est une personne. -- élément vivant ceci est un lieu. -- pour une action de déplacement ceci est une direction. -- nord, sud, en haut, … ceci est un intitulé. -- n'importe quel élément ou direction
Les épithètes se combinent ; l’ordre n’a pas d’importance :
ceci est un objet vu, visible et accessible. cela est une personne visible.
Priorité (prioritairement)
Si vous souhaitez donner la priorité à certains objets par rapport à d’autres vous pouvez utiliser le mot clé « prioritairement ».
Exemple concret
En cours de jeu, le joueur possède une pomme dans son inventaire tandis qu’une autre pomme se trouve encore sur la table.
Voici 2 commandes que le joueur pourrait entrer:
1) prendre la pomme: l’action prendre donne la priorité à la pomme qui est encore disponible sur la table (contrairement à celle qui est déjà possédée par le joueur).
action prendre ceci: définitions: ceci est un objet visible et accessible prioritairement disponible. (...) fin action
2) lâcher la pomme: l’action lâcher donne la priorité à la pomme est est possédée par le joueur (contrairement à celle qui est encore disponible sur la table).
action lâcher ceci: définitions: ceci est prioritairement possédé. (...) fin action
Plus d’informations : États personnalisés et Visibilité et accessibilité.
Définition d'une action qui déplace le joueur
En ajoutant la phrase L’action déplace le joueur vers ceci. vous aurez accès aux variables source et destination dans vos règles.
action aller vers ceci: définitions: Ceci est un lieu. L’action déplace le joueur vers ceci. phase prérequis: si le joueur se trouve dans ceci, refuser "Vous y êtes déjà.". phase exécution: déplacer le joueur vers ceci. phase épilogue: exécuter l’action regarder. fin action -- modifier l’action « aller » -- remarque: avec une action qui déplace le joueur (aller), on peut utiliser les -- variables « origine », « destination » et « orientation ». règle avant aller vers un lieu: -- si le joueur tente d’aller là où il se trouve déjà si le joueur se trouve dans destination: dire "Vous y êtes déjà !". -- sinon déplacer le joueur vers la destination. sinon dire "{/Vous disparaissez de [intitulé origine]… et vous apparaissez dans [intitulé destination] !/}". changer le joueur se trouve dans destination. -- décrire le nouveau lieu où se trouve le joueur dire "{p}{_{*[titre ici]*}_}". dire "{n}[description ici][décrire objets ici]". fin si arrêter l’action. fin règle
Aide contextuelle
Vous pouvez fournir une aide affichée quand le joueur tape aide nomAction :
L’aide pour l’action mélanger est "{*mélanger X avec Y*}{n}Verse une potion dans une autre. Les deux potions doivent être des potions distinctes.".
Remplacer une action existante
→ Page dédiée : Règle remplacer (syntaxe, correspondance par signature, exemples testables).
Pour écraser une action déjà définie (par exemple une action de base héritée du moteur), utilisez un bloc règle remplacer <signature>:. Le bloc remplace intégralement l’action d’origine : description, phases, balises d’aide, etc. Les synonymes ne sont pas hérités — recopiez-les si vous voulez les conserver. Le bloc se ferme par fin règle. Le mot action est facultatif après remplacer : règle remplacer sauter et règle remplacer action sauter sont équivalents.
règle remplacer sauter: phase épilogue: dire "Vous bondissez comme un cabri.". fin règle
Correspondance par signature
La signature doit correspondre exactement à l’action ciblée : verbe, prépositions et présence de ceci / cela. Un bloc règle remplacer sauter ne touche pas action sauter sur ceci et vice-versa.
règle remplacer sauter sur ceci: phase épilogue: dire "Hop, vous voilà perché sur [le ceci].". fin règle
Désambiguïsation par définitions
Plusieurs actions du moteur partagent le même infinitif et la même arité. Le fichier actions.djn définit par exemple quatre action examiner ceci distinctes, une pour chaque type de cible : direction, lieu, objet, spécial.
Pour cibler la bonne version, reproduisez le bloc définitions de la version visée — seul le type de la cible (objet, lieu, direction…) est utilisé pour identifier l’action ; les épithètes (visible, vu, prioritairement…) n’interviennent pas dans la sélection.
règle remplacer examiner ceci: définitions: ceci est un objet prioritairement visible et mentionné. phase épilogue: dire "Rien d’intéressant à signaler sur [le ceci].". fin règle
Recopiez tout de même les épithètes et la priorité de l’action originale (ici prioritairement visible et mentionné). Comme le remplacement est total, ces critères sont aussi remplacés ; si vous les omettez, le résolveur de commandes peut ne plus sélectionner votre version au profit d’une autre action concurrente.
Si plusieurs actions correspondent à la signature fournie sans pouvoir être désambiguïsées, une erreur de compilation est émise. Si aucune action existante ne correspond, un avertissement non bloquant est affiché dans l’éditeur Donjon FI et la règle crée une nouvelle action.
Doublons d’actions
Deux blocs action <signature>: avec exactement la même signature (même infinitif, même arité ceci/cela, mêmes prépositions, même type de cible via définitions:) sont refusés. Le compilateur émet une erreur et vous invite à utiliser règle remplacer si l’intention était de modifier le comportement existant. De même, deux blocs règle remplacer qui ciblent la même action sont refusés : une seule règle de remplacement est autorisée par action.
Voir aussi
- Exemples d’actions personnalisées — mini-scénarios complets à tester
- Règles avant / après — pour intercepter une action existante sans la réécrire
- Actions de base — la liste des actions déjà fournies par le moteur
