Ceci est une ancienne révision du document !
Table des matières
Language / Langue : FR | EN
Modèles (YAML)
Un modèle contient des salles réutilisables. Chaque instance associe ses noms de variables et de sorties à ceux du scénario.
Exemple : une salle de soins
Ce scénario ouvre le modèle, permet de se soigner, puis revient aux choix de la salle appelante.
titre: Infirmerie vars: pv: 10 modeles: soins: variables: vie: 0 salles: - id: fiche texte: 'Points de vie : v_vie_v' auto_refresh: true actions: - verbe: soigner cible: all bouton: Soigner faire: vie + 5 choix: - bouton: Sortir vers: fin_modele salles: - id: depart texte: Tu entres dans l'infirmerie. modeles: - modele: soins variables: vie: pv choix: - bouton: Terminer vers: victoire
Les définitions de modeles: sont rangées par nom, ici soins. La salle depart contient une liste d'instances : modele: soins choisit la définition et vie: pv relie la variable générique à pv, déclarée dans le scénario.
Les salles internes reçoivent un préfixe pour éviter les collisions d'ID. fin_modele reprend après le modèle : ici, le choix Terminer devient disponible. Une sortie générique déclarée dans sorties: peut aussi être associée à une salle du scénario dans l'instance.
Listes et collections associées (4.17)
Le modèle peut déclarer des listes et collections génériques. Dans l'instance, les associer aux données du scénario, sans copie :
listes: produits: monde.marchand.sac collections: heros: monde.etat
Les cibles doivent exister. Le chemin traverse uniquement des collections, sans indice de liste. Les propriétés requises restent contrôlées si un parent est remplacé ou après une reprise de sauvegarde.
Voir Listes et collections, Tags et Événements.
Ajouter un modèle dans la salle : sur_place
sur_place: true se place dans la définition du modèle. Il doit contenir exactement une salle interne. Ses initialisations, objets, actions, événements, choix, raccourcis et encadrés sont ajoutés à la salle appelante, sans détour par une salle virtuelle. Le texte et l'identifiant de la salle appelante sont conservés ; le texte de la salle interne n'est pas ajouté.
titre: Un modèle dans l'atelier collections: joueur: {} modeles: soins_sur_place: sur_place: true collections: heros: {vie: 0} defauts: heros: {vie: 100} salles: - id: contenu encadre: position: haut-droite portee: salle texte: 'Vie : v_heros.vie_v' actions: - verbe: soigner cible: all bouton: Soigner faire: heros.vie + 1 salles: - id: atelier texte: Vous êtes dans l'atelier. modeles: - modele: soins_sur_place collections: {heros: joueur} choix: - {commande: sortir, vers: couloir} - id: couloir texte: Le couloir. choix: - {commande: revenir, vers: atelier}
Ici, Soigner agit dans l'atelier et Sortir reste disponible. En revenant, la valeur de joueur.vie est conservée. Les init: du modèle sont exécutés à chaque entrée comme ceux de la salle : ils peuvent donc réinitialiser explicitement des valeurs.
Les sorties: et leurs associations dans l'instance restent utilisables. fin_modele désigne la salle appelante pour un modèle sur place. Les champs simples fournis par le modèle peuvent remplacer ceux de la salle : vérifier notamment les réglages d'affichage. Éviter aussi les commandes et positions d'encadrés concurrentes ; le linter signale un encadré de modèle qui remplace celui de la salle.
sur_place règle l'intégration du modèle. portee: salle règle séparément la durée de vie d'un encadré. Sans portée explicite, un encadré reste persistant, même dans un modèle sur place. Voir Encadrés HUD. En anglais : inline: true et scope: room.
Valeurs par défaut des collections
Le bloc defauts: de l'exemple complète uniquement les propriétés absentes des collections associées, avant leur validation. Une valeur déjà fournie par le scénario reste conservée, y compris dans les collections imbriquées. La collection cible doit exister : joueur: {} suffit ici. Les valeurs par défaut s'appliquent aux collections génériques déclarées par le modèle ; elles ne remplacent pas une initialisation de salle.
Dans l'éditeur, la définition du modèle propose l'insertion dans la salle appelante et les valeurs par défaut de chaque collection. En anglais, le bloc s'appelle defaults:.
La bibliothèque fournie comprend grille_2d, un modèle sur place associant une carte et un joueur à des collections. Ses démonstrations montrent déplacements, collisions, meubles, portes et combat facultatif. Il utilise les objets et choix ordinaires de la salle, ainsi qu'un encadré explicitement limité à cette salle. Copier le modèle et suivre les commentaires de sa définition pour préparer la carte et les associations.
