**Language / Langue :** **FR** | [[en:yaml:choix|EN]] ====== Choix et boutons (YAML) ====== Les choix définissent les sorties disponibles depuis une salle - navigation, conditions d'accès et boutons affichés au joueur. ===== Syntaxe minimale ===== La forme la plus simple : une destination, rien d'autre. choix: - vers: foret - vers: village La salle ''foret'' est accessible en tapant ''avancer foret''. Aucun bouton n'est affiché. ===== Ajouter un bouton ===== ''bouton:'' affiche un bouton cliquable sous le texte de la salle. choix: - bouton: "⬆️ Aller au nord" vers: foret - bouton: "🏠 Retour au village" vers: village ===== Commande textuelle ===== ''commande:'' définit le mot-clé que le joueur peut taper (en plus du bouton). choix: - commande: nord bouton: "⬆️ Aller au nord" vers: foret Le joueur peut cliquer le bouton **ou** taper ''nord'' ou ''avancer nord''. Sans ''commande:'', utilisez l'identifiant de destination, par exemple ''avancer foret''. Avec les [[fr:yaml:texte#liste_des_choix_dans_le_texte|listes de choix dans le texte]], un choix sans alias utilise son numéro dans la liste. Un alias numérique explicite prime sur un numéro de salle ou un raccourci automatique de bouton. Voir [[fr:yaml:alias|Alias et commandes]] pour les raccourcis globaux et les alias d'action. ===== Bouton hérité de la salle ===== Si la salle de destination possède un ''bouton:'', les choix qui pointent vers elle sans ''bouton:'' propre héritent de ce label automatiquement. salles: - id: laboratoire bouton: "⚗️ Laboratoire" texte: "..." - id: couloir choix: - vers: laboratoire # affiche "⚗️ Laboratoire" sans le répéter ici ===== vers: precedent ===== ''vers: precedent'' retourne à la salle d'où le joueur vient. choix: - commande: retour bouton: "↩️ Retour" vers: precedent ===== Condition d'accès (si:) ===== ''texte:'' accompagne la tentative, même si ''si:'' est refusée. ''texte_ok:'' et ''texte_ko:'' donnent le résultat de cette condition. choix: - commande: entrer bouton: Entrer vers: salle_secrete texte: "Vous poussez la porte." si: "cle" texte_ok: "La serrure cède." texte_ko: "La porte reste verrouillée." ^ Situation ^ Textes affichés ^ Effet et déplacement ^ | Sans ''si:'' | ''texte'' | Oui | | Condition remplie | ''texte'' et ''texte_ok'' | Oui | | Condition refusée | ''texte'' et ''texte_ko'' | Non | | ''texte_ok'' sans ''si:'' | Aucun texte OK | Oui | | Bouton grisé | Aucun | Non | Les textes suivent leur ordre dans le YAML. Dans l'éditeur, les boutons de déplacement des champs permettent de changer cet ordre ; un nouveau choix commence par le champ Texte. ''effet:'' s'exécute après la vérification de ''si:'', avant les textes et le déplacement. Les textes lisent donc les valeurs modifiées par l'effet, même si ''effet:'' est écrit après eux. Cette règle concerne les choix. Une action utilise ''texte_ok:'' en cas de réussite, même sans condition. Un événement utilise ''texte:'' quand il se déclenche ; ce texte ne s'affiche pas si sa condition échoue. ===== Bouton conditionnel (visible-si / grise-si) ===== choix: - commande: expert bouton: "🏆 Mode expert" vers: salle_expert visible-si: "v_score_v > 50" # bouton masqué si score <= 50 - commande: avancer bouton: "💀 Avancer" vers: salle_suivante grise-si: "v_pv_v <= 0" # bouton visible mais inactif si PV = 0 * ''visible-si:'' - le bouton n'apparaît pas si la condition est fausse * ''grise-si:'' - le bouton reste visible mais ne peut pas être cliqué ===== Effet au clic (effet:) ===== ''effet:'' exécute une action **avant** le déplacement. choix: - commande: acheter bouton: "🪙 Acheter (-10 pièces)" vers: boutique si: "v_or_v >= 10" effet: "or.-.10" ===== Supprimer des encadrés au clic ===== choix: - commande: retour bouton: "↩️ Retour" vers: accueil supprimer-encadre: - all # supprime tous les HUD actifs