**Language / Langue :** **FR** | [[en:yaml:actions|EN]]
====== Actions personnalisées (YAML) ======
Les actions personnalisées ajoutent des commandes au nom libre. Le joueur utilise la commande ''nomaction cible'' sur Discord, ou tape le verbe directement sur web/desktop.
===== Déclaration =====
Actions **locales** : dans le bloc ''actions:'' d'une salle, disponibles uniquement dans cette salle.
Actions **globales** : dans le bloc ''actions_globales:'' au niveau racine, disponibles partout.
actions:
- verbe: examiner
cible: coffre
si: ~
texte_ok: "Un vieux coffre en bois. Il semble verrouillé."
texte_ko: "Il n'y a rien d'intéressant ici."
- verbe: ouvrir
cible: coffre
si: "cle"
faire:
- "or.+.50"
- "-cle&&inventaire&&null" # retire la clé
texte_ok: "Vous ouvrez le coffre ! +50 pièces d'or."
texte_ko: "Le coffre est verrouillé. Il vous faut une clé."
===== Cible all =====
Avec ''cible: all'', n'importe quelle saisie est acceptée :
actions_globales:
- verbe: aller
cible: all
si: ~
faire: "t_action_cible_ok_t" # redirige vers la salle tapée
texte_ko: "Destination inconnue : t_action_cible_t."
^ Variable ^ Valeur ^
| ''t_action_cible_t'' | Cible saisie, ou identifiant résolu si un nom affiché d'objet est reconnu. |
| ''t_action_cible_ok_t'' | Dernière cible valide tapée |
===== Conditions multiples sur la même cible =====
Plusieurs lignes avec le même ''verbe+cible'' sont testées dans l'ordre :
actions:
- verbe: combiner
cible: herbe
si: "herbe t_combinaison_t.=.rien"
faire:
- "-herbe&&inventaire&&null"
- var_texte: combinaison
valeur: "herbe"
texte_ok: "L'herbe entre dans l'alambic."
texte_ko: "Vous n'avez pas d'herbe."
- verbe: combiner
cible: all
si: ~
texte_ok: "t_action_cible_t n'est pas un ingrédient connu."
Les actions locales sont testées avant les globales. La première condition vraie gagne.
===== Alias d'action =====
''alias:'' crée un raccourci : le joueur peut taper le mot seul sans le verbe :
actions:
- verbe: inspecter
cible: alambic
alias: alambic # taper "alambic" = "inspecter alambic"
si: ~
texte_ok: "L'alambic central. Utilisez 'combiner [ingrédient]'."
===== Bouton sur une action =====
''bouton:'' ajoute un bouton sur Web/Desktop ou une réaction sur Discord :
actions:
- verbe: utiliser
cible: potion
bouton: "Utiliser la potion"
visible-si: "potion" # masqué si l'inventaire n'a pas de potion
grise-si: "v_pv_v >= v_pvmax_v" # grisé si PV déjà au max
si: "potion"
faire:
- "-potion&&inventaire&&null"
- "pv.+.5"
texte_ok: "Vous buvez la potion. +5 PV !"
texte_ko: "Vous n'avez pas de potion."
===== Données, boucles et raccourcis (4.17) =====
''faire:'' accepte les écritures espacées comme ''vie + 10'', les opérations de listes, les groupes conditionnels et les boucles. Voir [[fr:yaml:listes-boucles|Listes, collections et boucles]].
Les actions, choix et événements peuvent recevoir un [[fr:yaml:raccourcis|raccourci clavier, souris ou manette]], avec ou sans bouton. Les conditions et limites de l'interaction restent appliquées.
===== Noms affichés des objets =====
Les cibles d'actions et ''t_action_cible_t'' gardent l'identifiant de l'objet, même si le joueur le désigne par son nom affiché. Les cibles explicites gardent leur priorité. Pour changer le nom visible pendant la partie :
faire:
- nom_affiche: cle_atelier
valeur: clé identifiée
Une valeur vide rétablit l'identifiant d'origine. Voir [[fr:yaml:objets|Objets : noms affichés, renommage et décors secrets]] pour les règles et les exemples.