**Language / Langue :** **FR** | [[en:yaml:evenements|EN]]
====== Événements (YAML) ======
Les événements sont des blocs d'action déclenchés automatiquement à l'entrée d'une salle ou via des boutons.
===== Syntaxe de base =====
evenements:
- si: "condition"
faire: "action"
texte: "Message affiché"
* ''si:'' — condition de déclenchement (''~'' ou absent = toujours)
* ''faire:'' — action à exécuter (ou liste d'actions)
* ''texte:'' — message affiché (peut être absent)
===== Actions disponibles dans faire: =====
^ Syntaxe ^ Effet ^
| ''score.+.10'' | Ajoute 10 à ''score'' |
| ''pv.-.3'' | Soustrait 3 à ''pv'' |
| ''score.=.0'' | Fixe ''score'' à 0 |
| ''score.=.v_autre_v'' | Copie la valeur de ''autre'' dans ''score'' |
| ''score.=.%1:6'' | Valeur aléatoire 1-6 |
| ''score.=.%1:70,5:20,10:10'' | Valeur pondérée (virgule = poids) |
| ''"herbe&&inventaire&&Description"'' | Ajouter un objet à l'inventaire |
| ''"-herbe&&inventaire&&null"'' | Retirer un objet |
| ''event_global:id:ON'' | Activer un événement global |
| ''event_global:id:OFF'' | Désactiver un événement global |
| ''event_global:id:SWITCH'' | Inverser l'état d'un événement global |
| ''timer_global:id:ON'' | Activer un timer global |
| ''timer_global:id:OFF'' | Désactiver un timer global |
| ''declencher_event:id'' | Déclencher un événement global par son id |
Plusieurs actions dans un même événement :
faire:
- "pv.+.5"
- "score.+.10"
- "event_global:bonus_visite:ON"
===== Fins de partie =====
evenements:
- si: "v_pv_v <= 0"
fin: defaite
texte: "Vous êtes mort..."
- si: "v_score_v >= 100"
fin: victoire
texte: "Félicitations !"
''fin:'' et ''faire:'' sont exclusifs. Pour faire une action ET terminer, utilisez une salle intermédiaire.
===== Redirection (vers:) =====
evenements:
- si: "v_pv_v <= 0"
vers: salle_mort
texte: "Vous perdez connaissance..."
Un événement avec ''vers:'' stoppe les événements suivants (comme ''997'' en .txt).
===== Bouton sur un événement =====
Un événement peut être transformé en **bouton cliquable** avec ''bouton:''. Sans ''bouton:'', il s'exécute automatiquement à l'entrée.
evenements:
- si: ~
bouton: "🍎 Manger une pomme (+3 PV)"
faire: "pv.+.3"
texte: "Vous mangez une pomme. PV : v_pv_v"
===== Limiter les utilisations (max:) =====
evenements:
- si: ~
bouton: "🪙 Ramasser une pièce"
faire: "score.+.10"
max: 3 # utilisable 3 fois au maximum
texte:
- si: "_max_atteint_"
texte: "Il n'y a plus de pièces."
- texte: "+10 score !"
''max:'' accepte un entier fixe ou une variable (ex: ''v_charges_v'').
''_max_atteint_'' est une condition spéciale vraie quand le compteur vient d'être épuisé.
===== Boutons conditionnels (visible-si / grise-si) =====
evenements:
- si: ~
bouton: "⚔️ Attaquer"
visible-si: "v_pv_v > 0" # masqué si PV = 0
faire: "score.+.5"
texte: "Vous attaquez !"
- si: ~
bouton: "🏃 Fuir"
grise-si: "v_pv_v <= 0" # visible mais inactif si PV = 0
vers: accueil
''visible-si:'' masque le bouton si la condition est fausse. ''grise-si:'' laisse le bouton visible mais inactif si la condition est vraie.
⚠ Sur Discord, les boutons sont figés dans le message envoyé. Cliquer sur 🔄 (rafraichir) force un réaffichage avec les boutons à jour.
===== Texte conditionnel sur un événement =====
Le champ ''texte:'' accepte une liste de blocs conditionnels :
texte:
- si: "_max_atteint_"
texte: "Plus de charges disponibles !"
- si: "v_score_v > 50"
texte: "🏆 Riche aventurier — score v_score_v !"
- texte: "Action effectuée." # fallback toujours affiché
===== Comportement séquentiel =====
⚠ Critique : les événements s'exécutent dans l'ordre. Chaque événement voit les valeurs **déjà modifiées** par les précédents. Un événement avec ''vers:'' ou ''fin:'' **stoppe** les suivants.
===== Timer déclenché par événement =====
evenements:
- si: ~
timer: sablier
duree: "30"
vers: salle_expiration
texte: "Le sablier est lancé !"
''v_sablier_v'' contient les secondes restantes. Si le joueur quitte la salle, le timer local s'annule.
===== Commande manuelle dans faire: (v4.9) =====
L'action ''commande:'' dans ''faire:'' déclenche une commande bot textuelle depuis un événement, un choix ou une action :
faire:
- commande: "prendre cle"
- commande: "examiner coffre"
- commande: "aller laboratoire"
Fonctionne avec toutes les commandes standard : ''prendre'', ''examiner'', ''jeter'', ''avancer'', ''reculer'', ''rafraichir'', ''inventaire'', ''action''.
Utile pour déclencher automatiquement une série d'actions enchaînées, ou pour simuler une interaction à partir d'un événement.
**Retrouvez nous sur le [[https://discord.gg/Z63DtVV|discord Make&Play]]**