====== Exemples d’actions personnalisées ======
Cette page rassemble des mini-scénarios qui illustrent les différentes formes d’actions personnalisées. Voir [[reference:routines:action:start|la page principale]] pour la syntaxe complète.
===== Action à 1 complément : cueillir une fleur =====
Démontre les **3 phases** (prérequis, exécution, épilogue), un **refus contextuel** quand l’objet n’est pas une fleur, et un état personnalisé ''cueillie'' pour bloquer la deuxième cueillette.
À tester :
* ''cueillir la rose'' → OK, déposée dans le panier
* ''cueillir le cactus'' → refusé (ce n’est pas une fleur)
* ''cueillir la rose'' une deuxième fois → refusé (déjà cueillie)
* ''inventaire'' → voir le panier
-- "Informations sur le jeu".
Le titre du jeu est "Le jardin secret".
L’auteur du jeu est "DonjonFI".
cueillie est un état.
Le jardin secret est un lieu.
Sa description est "Un petit jardin entouré de murs de pierre. Plusieurs fleurs y poussent — et un cactus solitaire au coin.".
Le panier en osier est un contenant dans l’inventaire.
La rose rouge est une fleur dans le jardin secret.
La marguerite blanche est une fleur dans le jardin secret.
La tulipe jaune est une fleur dans le jardin secret.
Le cactus piquant est un objet dans le jardin secret.
Sa description est "Mieux vaut ne pas y toucher à mains nues.".
action cueillir ceci:
définition:
ceci est un objet visible et accessible.
phase prérequis:
si ceci n’est pas une fleur:
refuser "Vous ne cueillez pas [intitulé ceci] : ce n’est pas une fleur.".
fin si
si ceci est cueillie:
refuser "[Intitulé ceci] a déjà été cueilli[es ceci].".
fin si
phase exécution:
changer ceci est cueillie.
déplacer ceci dans le panier en osier.
phase épilogue:
dire "Vous cueillez délicatement [intitulé ceci] et [le ceci] déposez dans votre panier.".
fin action
Le joueur est dans le jardin secret.
[[djnc>wiki_actions_cueillir_fleur|tester cet exemple]]
===== Action à 2 compléments : mélanger deux potions =====
Démontre une action ''ceci avec cela'' avec **définitions séparées**, **plusieurs prérequis**, le test d’identité ''si ceci est cela'', un effet ''au hasard'' dans l’épilogue, et une **aide contextuelle** affichée par ''aide mélanger''.
À tester :
* ''mélanger la fiole rouge avec la fiole bleue'' → OK
* ''mélanger la fiole rouge avec la fiole verte'' → refusé (rouge déjà mélangée)
* ''mélanger la fiole verte avec la fiole verte'' → refusé (même potion)
* ''mélanger le chiffon avec la fiole verte'' → refusé (le chiffon n’est pas une potion)
* ''aide mélanger'' → affiche l’aide
-- "Informations sur le jeu".
Le titre du jeu est "L’atelier d’alchimie".
L’auteur du jeu est "DonjonFI".
mélangée est un état.
L’atelier d’alchimie est un lieu.
Sa description est "Un laboratoire encombré d’alambics. Sur l’établi, trois potions colorées.".
L’établi de l’alchimiste est un support dans l’atelier d’alchimie.
La fiole rouge est une potion sur l’établi de l’alchimiste.
La fiole bleue est une potion sur l’établi de l’alchimiste.
La fiole verte est une potion sur l’établi de l’alchimiste.
Le chiffon est un objet sur l’établi de l’alchimiste.
action mélanger ceci avec cela:
définitions:
ceci est un objet visible et accessible.
cela est un objet visible et accessible.
phase prérequis:
si ceci n’est pas une potion:
refuser "[Intitulé ceci] n’est pas une potion.".
fin si
si cela n’est pas une potion:
refuser "[Intitulé cela] n’est pas une potion.".
fin si
si ceci est cela:
refuser "Vous ne pouvez pas mélanger une potion avec elle-même.".
fin si
si ceci est mélangée ou cela est mélangée:
refuser "Une des potions a déjà servi à un mélange.".
fin si
phase exécution:
changer ceci est mélangée.
changer cela est mélangée.
phase épilogue:
dire "Vous versez [intitulé ceci] dans [intitulé cela]. Une fumée [au hasard]violette[ou]dorée[ou]grise[fin choix] s’élève de l’établi.".
fin action
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 distinctes et non encore mélangées.".
Le joueur est dans l’atelier d’alchimie.
[[djnc>wiki_actions_melanger_potions|tester cet exemple]]
===== Refuser une action existante (règle avant) =====
Pour bloquer une action **déjà fournie** par le moteur (comme ''prendre'' ou ''aller''), on utilise une [[reference:routines:regle:start|règle avant]] plutôt qu’une action personnalisée. Exemple : un musée où certains objets sont fixés au sol et où il faut un badge pour sortir.
Voir le scénario complet : ''ressources/scenarios/tests/refuser_action.djn'' dans le dépôt.
Extrait :
règle avant prendre la statue en marbre:
refuser "Ça ne fonctionne pas comme ça. La statue est boulonnée au sol.".
fin règle
règle avant prendre le vase Ming:
dire "Le gardien lève les yeux et vous regarde fixement.".
refuser l’action.
fin règle
règle avant aller vers la sortie:
si le badge de visiteur n’est pas possédé:
dire "L’agent de sécurité à l’entrée vous barre le passage.".
refuser l’action.
fin si
fin règle
Les deux formes de refus (''refuser "message"'' et ''refuser l’action'' après un ''dire'') sont décrites sur la page [[reference:routines:action:start|action personnalisée]].
===== Voir aussi =====
* [[exemples:couper|Action « couper »]] — exemple complet d’une action à 2 compléments avec retour à 1 complément
* [[reference:routines:action:start|Actions personnalisées (référence)]]
* [[reference:routines:regle:start|Règles avant / après]]