====== États des éléments du jeu ====== Vous pouvez ajouter des //états// à vos objets et lieux.\\ Il est possible de tester et de modifier les états d’un élément du jeu. Les nouveaux états sont créés automatiquement lorsque vous les utilisez. ===== Appliquer des états aux éléments du jeu lors de la description du monde ===== La valise est un contenant solide. Elle est fermée et ouvrable. => La valise possède les états ''solide'', ''ouvrable'' et ''fermé''. Les féminins et pluriels sont gérés automatiquement sauf pour certains mots irréguliers. ===== Changer les états en cours de partie ===== ==== Ajouter un état à un objet ==== changer la valise est ouverte; Ajouter l’état ''ouvert'' à la valise. Remarques : * L’état ''fermé'' est retiré automatiquement de l’objet valise car il y a une //bascule// entre ''ouvert'' et ''fermé''. * L’état ''intact'' est retiré automatiquement de l’objet valise car il a été modifié par le joueur. ==== Retirer un état d’un lieu ==== changer ici n’est plus obscur. Retirer l’état ''obscur'' au lieu dans lequel le joueur se trouve. Remarque: l’état ''clair'' est ajouté automatiquement au lieu car il y a une //bascule// entre ''clair'' et ''obscur''. ===== Relations entre états ===== Certains états entretiennent des relations qui automatisent leur gestion. Trois mécanismes existent — voir aussi la légende sur [[reference:memoire:etats:etats_de_base|Les états de base]]. ==== Bascules (↔) ==== Deux états en bascule sont complémentaires : appliquer l’un retire automatiquement l’autre, et inversement. La torche est un objet allumé. action souffler sur la torche : changer la torche est éteinte. fin action => Après ''changer la torche est éteinte'', l’état ''allumé'' est retiré automatiquement (bascule ''allumé'' ↔ ''éteint''). Bascules courantes : ''ouvert'' ↔ ''fermé'', ''clair'' ↔ ''obscur'', ''verrouillé'' ↔ ''déverrouillé'', ''actionné'' ↔ ''arrêté'', ''parlant'' ↔ ''muet'', ''fixé'' ↔ ''transportable''. ==== Implications (→) ==== Appliquer un état qui en implique d’autres ajoute aussi tous les états impliqués, en cascade. La lettre compromettante est un objet secret. => La lettre reçoit ''secret'', mais aussi ''caché'' et ''discret'' par implications en chaîne (''secret'' → ''caché'' → ''discret''). si la lettre compromettante est discrète : dire "Personne ne la remarquerait dans une pile de papiers.". fin si => Le test renvoie vrai, alors qu’on n’a déclaré que ''secret''. ==== Contradictions / exclusions (≠) ==== Appliquer un état qui en contredit d’autres retire ces derniers automatiquement. C’est ce qu’on appelle aussi une //exclusion mutuelle//. L’eau est un objet liquide dans la marmite. action geler l’eau : changer l’eau est solide. dire "L’eau devient un bloc de glace.". fin action => Après ''changer l’eau est solide'', l’état ''liquide'' est retiré automatiquement (contradiction ''solide'' ≠ ''liquide'' ≠ ''gazeux'' : les trois s’excluent mutuellement). Autres contradictions courantes : * ''intact'' ≠ ''déplacé'' ≠ ''modifié'' (un objet manipulé n’est plus intact) * ''connu'' ≠ ''secret'' ≠ ''caché'' ≠ ''discret'' (un objet rendu connu cesse d’être secret) ===== Déclarer ses propres relations entre états ===== Vous pouvez définir vous-même les relations entre les états que vous créez. Ces déclarations se placent dans la //description du monde//, avant ou après l’utilisation des états concernés. ==== Déclarer une bascule ==== Syntaxe : '' et forment une bascule.'' sec et mouillé forment une bascule. La serviette est un objet sec dans la salle de bain. action tremper la serviette : changer la serviette est mouillée. dire "La serviette est trempée.". fin action => Après l’action, ''sec'' est retiré et ''mouillé'' ajouté automatiquement. Inversement, ''changer la serviette est sèche'' retire ''mouillé''. ==== Déclarer une implication ==== Syntaxe : ''<état> implique .'' ou ''<état> implique , et .'' vu implique mentionné. secret implique caché, invisible et discret. Le passage dérobé est un lieu secret. => Le passage dérobé reçoit automatiquement ''caché'', ''invisible'' et ''discret'' en plus de ''secret''. L’implication peut se chaîner : si vous déclarez aussi ''caché implique discret.'', alors ''secret'' implique ''caché'' qui implique ''discret'' — la cascade se propage. ==== Déclarer une exclusion ==== Syntaxe : ''<état> exclut .'' ou ''<état> exclut , et .'' déplacé exclut intact. intact exclut déplacé, modifié et fendu. Le vase est un objet intact sur la table. action briser le vase : changer le vase est fendu. dire "Le vase se fend en deux.". fin action => Après l’action, ''intact'' est retiré (car ''fendu'' exclut ''intact'' indirectement via la deuxième déclaration). Pour créer un groupe d’états mutuellement exclusifs (comme ''solide''/''liquide''/''gazeux''), il suffit d’écrire les exclusions dans les deux sens. ==== Bascule, implication ou exclusion : lequel choisir ? ==== * **Bascule** : exactement //deux// états symétriques où l’un implique l’absence de l’autre, et vice-versa. Ex : ''ouvert''/''fermé''. * **Implication** : relation //asymétrique// — appliquer A entraîne B, mais pas l’inverse. Ex : ''secret'' → ''caché'' (un objet caché n’est pas forcément secret). * **Exclusion** : un état //chasse// d’autres états, sans imposer de réciproque. Ex : ''déplacé'' chasse ''intact'', mais l’on peut redevenir ''intact'' sans automatisme. ===== Tester les états ===== si la valise est ouverte : dire "Vous pouvez remplir la valise.". fin si si ici est sombre : dire "Vous ne voyez rien". fin si ===== Exemple complet ===== Le titre du jeu est "Noir". L’auteur du jeu est "zigoteau". -- description du monde Le grenier est un lieu. Il est obscur. La valise est un contenant dans le grenier. Elle est fermée et ouvrable. La lampe est un objet éteint dans l’inventaire. Le joueur se trouve dans le grenier. -- actions et règles spéciales action allumer la lampe: changer le grenier est clair. changer la lampe est allumée. dire "À présent je vois comme en plein jour !". fin action règle avant regarder, regarder un objet ou examiner un objet: si ici est obscur: dire "Je ne vois rien.". arrêter l’action. fin si fin règle règle avant commencer le jeu: dire "Il fait noir.". stopper l’action. fin règle => ''éteint'', ''allumé'', ''obscur'', ''fermé'' et ''ouvrable'' sont des //états//.