**Language / Langue :** **FR** | [[en:yaml:hud|EN]]
====== HUD - Encadrés (YAML) ======
Les encadrés HUD (''encadre:'') permettent d'afficher des informations permanentes à l'écran du joueur : PV, score, mini-carte, compte à rebours, etc.
Les encadrés sont visibles sur **web et desktop uniquement**. Sur Discord et terminal, ils sont ignorés - si une information est essentielle, écrivez-la aussi dans le texte narratif.
===== Positions disponibles =====
8 positions :
* ''haut'' / ''bas'' / ''gauche'' / ''droite''
* ''haut-gauche'' / ''haut-droite'' / ''bas-gauche'' / ''bas-droite''
Les bandes (''haut'', ''bas''...) remplacent les coins correspondants si elles coexistent.
===== Syntaxe de base =====
salles:
- id: salle_combat
# Sur une salle : posé à l'entrée, persiste jusqu'au remplacement ou suppression
encadre:
position: haut-droite
texte: |
❤️ v_pv_v / v_pvmax_v PV
⭐ v_score_v pts
# Sur un événement ou un choix : mis à jour au moment du clic
evenements:
- si: ~
faire: "pv.-.3"
bouton: "💥 Perdre 3 PV"
texte: "Aïe !"
encadre:
position: haut-droite
texte: |
❤️ v_pv_v / v_pvmax_v PV
⭐ v_score_v pts
===== Taille =====
^ Clé ^ Effet ^
| ''taille: 30'' | 30 % de la zone de jeu : hauteur en haut/bas, largeur sur les côtés et dans les coins |
| ''largeur: 25'' | Largeur explicite en % |
| ''hauteur: 15'' | Hauteur explicite en % |
''largeur:'' et ''hauteur:'' sont indépendants - on peut en spécifier un seul.
Si aucun n'est précisé : valeur par défaut selon la position.
Sur mobile, les bandes latérales deviennent des bandes en haut/bas : leur taille règle alors la hauteur.
===== Style =====
encadre:
position: haut-droite
taille: 38
fond: "#1a1a2e"
couleur-texte: "#e0e0ff"
texte: "HUD stylisé"
===== Texte conditionnel =====
Le ''texte:'' d'un encadré accepte une liste de blocs conditionnels. Le moteur s'arrête au premier bloc vrai - **mettre le plus restrictif en premier** :
vars: {pv: 10, pvmax: 10}
encadre:
position: haut-droite
texte:
- si: "v_pv_v <= 0"
texte: "💀 MORT"
- si: "v_pv_v <= 3"
texte: "⚠️ CRITIQUE ! ❤️ v_pv_v"
- texte: "❤️ v_pv_v / v_pvmax_v" # fallback
===== Split : deux zones côte à côte =====
''%%[[split]]%%'' dans le texte divise l'encadré en deux zones. L'ordre dépend de la position :
* ''gauche/droite'' > zone haut / zone bas
* ''haut/bas'' > zone gauche / zone droite
encadre:
position: gauche
largeur: 28
texte: |
🗺️ Zone actuelle
demo_split
[[split]]
❤️ v_pv_v PV
⭐ v_score_v pts
Les images ''%%[[url]]%%'' sont supportées dans les zones.
===== Plusieurs encadrés simultanés =====
encadre:
- position: haut-gauche
texte: "❤️ v_pv_v PV"
- position: haut-droite
texte: "⭐ v_score_v pts"
- position: bas-droite
texte: "📍 Zone : v_zone_v"
===== Supprimer des encadrés =====
# Sur une salle, un choix ou un événement :
supprimer-encadre:
- all # supprime tous les encadrés
Pour ne supprimer qu'un coin :
supprimer-encadre:
- haut-droite
===== Vidéo dans un HUD =====
La syntaxe vidéo peut être utilisée dans le texte d'un encadré :
encadre:
position: haut
texte:
- "((loop;muted:https://exemple.com/video.mp4))"
===== Portée limitée à la salle (4.17) =====
**Par défaut, les encadrés restent persistants**, jusqu'à leur remplacement ou leur suppression explicite. Pour effacer un encadré en quittant la salle qui l'a posé, ajouter ''portee: salle'' :
encadre:
position: haut-gauche
portee: salle
texte: Le plan de cette pièce.
Cette option fonctionne sur les salles, actions, choix et événements, y compris globaux : la salle de rattachement est celle où l'encadré est effectivement posé. Une action sans déplacement, un rafraîchissement ou un retour vers la même salle ne l'efface pas. Un déplacement, le retour téléphone ou la fin de partie le retire. Les autres encadrés persistants restent affichés.
Un encadré déclaré sur la salle est reposé à chaque entrée. Un encadré créé par une interaction attend que celle-ci soit exécutée à nouveau. Un encadré remplacé n'est pas restauré automatiquement. La sauvegarde conserve la portée et la salle de rattachement ; les anciens encadrés sans portée gardent leur comportement persistant.
Dans l'éditeur, cocher **Effacer en quittant la salle** sur l'encadré. La case est décochée par défaut. La portée reste facultative dans les [[fr:yaml:modeles|modèles sur place]] ; ''grille_2d'' la demande explicitement. En anglais : ''scope: room''.
===== Pourcentage et alignement dans un encadré =====
À côté de ''%%[[split]]%%'', la forme ''%%[[split:40]]%%'' réserve 40 % à la zone précédente. Le partage suit l'axe de l'encadré. Les blocs ''%%[[align:centre]]texte[[/align]]%%'' acceptent aussi ''gauche'' / ''droite'', ''left'' / ''center'' / ''right'', ou une variable textuelle ''t_cote_t''.
titre: 'Wiki 4.17 : HUD'
vars:
pv: 10
salles:
- id: atelier
texte: Un coffre.
encadre:
position: haut
texte: |
[[align:centre]]Carte.[[/align]]
[[split:40]]
PV : v_pv_v
choix:
- commande: rester
bouton: Rester
vers: atelier