Table des matières

Règles (avant / après / remplacer)

Une règle est une routine déclenchée par une action — soit avant que l’action s’exécute (pour la conditionner ou la bloquer), soit après (pour ajouter une réaction), soit à la place de l’action pour la réécrire entièrement. Contrairement à une action personnalisée, une règle ne crée pas de nouveau verbe : elle vient se greffer sur un verbe existant pour en modifier le comportement.

Les trois types

Syntaxe générale

règle avant <action>:
  -- instructions
fin règle
 
règle après <action>:
  -- instructions
fin règle
 
règle remplacer <action>:
  -- phases qui remplacent intégralement l’action d’origine
fin règle

Les trois variantes se ferment par fin règle.

Déclencheurs

Une action ciblée sur un objet précis

règle avant prendre la pomme:
  si la pomme est pourrie:
    refuser "Cette pomme est pourrie.".
  fin si
fin règle

Plusieurs actions combinées (« ou »)

La même règle réagit à plusieurs actions :

règle après donner l’anneau au roi, donner l’anneau au prince ou donner l’anneau à la reine:
  dire "<< Grâce à vous le royaume est sauvé ! >>".
fin règle

Une classe d’objets (générique)

Pour appliquer la règle à tous les objets d’un type, utilisez l’article indéfini :

règle après parler à un chien:
  dire "<< Wouf ! >>".
fin règle

Cette règle se déclenche pour n’importe quel chien présent dans la partie.

Un déplacement (lieu ou direction)

Une règle sur aller peut cibler le lieu de destination ou la direction empruntée :

règle après aller dans le jardin:
  dire "Vous voilà dans le jardin.".
fin règle
 
règle après aller vers le nord:
  dire "Vous progressez vers le nord.".
fin règle

Les deux formes se déclenchent quelle que soit la commande tapée par le joueur (aller au nord, nord, n…). Si une règle « lieu » et une règle « direction » correspondent au même déplacement, les deux se déclenchent. Voir aussi les cibles origine, destination et orientation des balises dynamiques.

Au démarrage du jeu

règle avant commencer le jeu:
  changer le joueur possède la lampe.
  changer la porte n’est plus verrouillée.
  dire "Une voix vous murmure : << Bienvenue dans le labyrinthe… >>".
fin règle

Tester si la règle s’est déjà déclenchée

si la règle se déclenche pour la première fois:
  ...
sinonsi la règle se déclenche pour la deuxième fois:
  ...
sinon
  ...
fin si
 
-- Forme négative
si la règle ne se déclenche pas pour la première fois:
  dire "Encore ?".
fin si

Pratique pour afficher une cinématique uniquement à la première rencontre, puis se contenter du texte standard ensuite. Voir un exemple complet sur Règle après.

À ne pas confondre avec la phase prérequis d’une action personnalisée. Si vous écrivez votre action, mettez les conditions de blocage dans phase prérequis. Si vous voulez intercepter une action existante (prendre, aller, examiner, …) sans la réécrire, utilisez une règle avant.

Voir aussi