====== États personnalisés ====== En plus des [[reference:definitions:visibilite|états intégrés]] (`ouvert`, `fermé`, `verrouillé`, …) fournis par le moteur, vous pouvez définir vos **propres états** pour décrire ce qui se passe dans votre scénario : ''féroce'', ''paisible'', ''endormi'', ''corrompu'', ''enchanté'', etc. Les déclarations d’états doivent venir **avant** la première utilisation. Un état utilisé sans déclaration est créé à la volée comme état simple. ===== Les 5 formes de déclaration ===== ==== 1. État simple ==== Un état indépendant, sans relation avec d’autres états. enchanté est un état. maudit est un état. ==== 2. Bascule ==== Deux états **opposés** et **mutuellement exclusifs**. Retirer l’un ré-introduit automatiquement l’autre — l’élément est //toujours// dans l’un des deux. sec et mouillé forment une bascule. féroce et paisible forment une bascule. * Appliquer ''sec'' retire ''mouillé''. * Faire ''changer X n’est plus sec'' applique automatiquement ''mouillé''. Le placard est un lieu. Le linge est un objet sec ici. sec et mouillé forment une bascule. action mouiller ceci: changer ceci n'est plus sec. dire "[Intitulé ceci] est désormais [si ceci est sec]sec[sinon]mouillé[fin si].". fin action action sécher ceci: changer ceci est sec. dire "[Intitulé ceci] est désormais [si ceci est sec]sec[sinon]mouillé[fin si].". fin action règle avant commencer le jeu: dire "Essayez : {/mouiller le linge/} puis {/sécher le linge/}.". fin règle [[djnc>wiki_etats_bascule_linge|tester cet exemple]] ==== 3. Groupe ==== Trois états (ou plus) **mutuellement exclusifs deux à deux**, sans ré-introduction au retrait. L’élément peut n’être dans //aucun// des trois. solide, liquide et gazeux se contredisent. éveillé, endormi et hiverné se contredisent. * Appliquer ''liquide'' retire ''solide'' et ''gazeux''. * Retirer ''liquide'' ne ré-introduit rien : l’élément n’est plus dans aucun des trois. ==== 4. Implication ==== Relation **asymétrique** : appliquer A applique aussi B. enragé implique éveillé. secret implique caché et invisible. * ''changer le dragon est enragé'' rend automatiquement le dragon ''éveillé''. * Une implication peut viser une **liste** d’états (''caché et invisible''). Le donjon est un lieu. Le dragon est un animal endormi ici. éveillé, endormi et hiverné se contredisent. enragé implique éveillé. action enrager ceci: changer ceci est enragé. dire "[Intitulé ceci] est désormais [si ceci est éveillé]éveillé[sinon]endormi[fin si] et [si ceci est enragé]enragé[fin si].". fin action règle avant commencer le jeu: dire "Le dragon est endormi. Essayez : {/enrager le dragon/} (il s'éveille automatiquement).". fin règle [[djnc>wiki_etats_implication_dragon|tester cet exemple]] ==== 5. Exclusion ==== Relation **bilatérale** : les deux états ne peuvent pas coexister, mais retirer l’un ne ré-introduit pas l’autre (contrairement à la bascule). déplacé exclut intact. pure exclut malade et maudit. * Une exclusion peut viser une **liste** d’états. ===== Bascule, groupe ou exclusions ? ===== Trois cas qui se ressemblent mais ne font pas la même chose : ^ Vous voulez… ^ Forme à utiliser ^ | L’élément est //toujours// soit A, soit B (deux états opposés) | **Bascule** : ''A et B forment une bascule.'' | | L’élément peut être dans A, B, C ou //aucun// des trois (mutex à plusieurs) | **Groupe** : ''A, B et C se contredisent.'' | | A contredit B //et// C, mais B et C peuvent coexister | **Deux exclusions** séparées : ''A exclut B.'' + ''A exclut C.'' | Un //groupe// équivaut à une clique complète d’exclusions deux à deux. Si vous voulez exprimer « A est incompatible avec B et C, mais B et C ne s’excluent pas mutuellement », il faut deux ''exclut'' séparés, pas un groupe. ===== Négation dans les définitions ===== Vous pouvez **retirer** un état d’un élément dès sa définition, sans passer par ''changer''. Deux formes : ==== Forme inline (constructeur) ==== La porte nord est une porte non ouvrable. La lance enchantée est un objet enchanté et non décoratif ici. ==== Forme verbale (assertion) ==== La porte nord n’est pas ouvrable. La pomme magique n’est pas mangeable. Les portes ne sont pas ouvertes. La négation s’applique **uniquement** dans les définitions. Pour modifier un état pendant la partie, utilisez l’instruction [[reference:instructions:changer|changer]] (forme ''changer X n’est plus Y''). ===== Utiliser un état ===== Une fois déclaré, un état personnalisé s’utilise exactement comme un état intégré : ==== Dans la définition d’un élément ==== Le dragon est un animal féroce et éveillé dans la grotte. La licorne est un animal pure et éveillée dans la clairière. ==== Dans une condition ''si'' ==== si le dragon est endormi: dire "Vous l’approchez sans bruit.". sinonsi le dragon est enragé: dire "C’est une mauvaise idée.". fin si ==== Dans une [[reference:texte:start|description dynamique]] ==== Sa description est "Un dragon écailleux. [si dragon est paisible]Il vous observe d’un air placide.[fin si][si dragon est féroce]Il rugit en vous voyant.[fin si][si dragon est endormi] Il dort profondément.[fin si]". ==== Via ''changer'' pendant la partie ==== changer le dragon est paisible. -- applique paisible, retire féroce (bascule) changer le dragon est endormi. -- applique endormi, retire éveillé et hiverné (groupe) changer le dragon n’est plus endormi. -- retire endormi ; aucun autre état ré-introduit ===== Exemple complet ===== Un mini-scénario qui met en scène un dragon (féroce/paisible + éveillé/endormi/hiverné + enragé) et une licorne (pure/corrompu). Essayez ''examiner le dragon'', puis ''endormir le dragon'', ''enrager le dragon'', ''apaiser le dragon'', ''corrompre la licorne''. -- "Informations sur le jeu". Le titre du jeu est "Le dragon endormi". L’auteur du jeu est "DonjonFI". -- État simple enragé est un état. -- Bascules féroce et paisible forment une bascule. pure et corrompu forment une bascule. -- Groupe éveillé, endormi et hiverné se contredisent. -- Implication enragé implique éveillé. La clairière enchantée est un lieu. Sa description est "Une clairière baignée par la lumière dorée. Au nord, l’entrée d’une grotte sombre.". La grotte du dragon est un lieu au nord de la clairière enchantée. Sa description est "Une grotte aux parois marquées par les griffes d’un grand reptile.". Le dragon est un animal féroce et éveillé dans la grotte du dragon. Sa description est "Un dragon écailleux. [si dragon est paisible]Il vous observe d’un air placide.[fin si][si dragon est féroce]Il rugit en vous voyant.[fin si][si dragon est endormi] Il dort profondément.[fin si][si dragon est enragé] Il est dans une rage folle.[fin si]". La licorne est un animal pure et éveillée dans la clairière enchantée. Sa description est "Une licorne d’un blanc immaculé. [si licorne est pure]Sa corne brille d’une lumière pure.[fin si][si licorne est corrompue]Sa corne a viré au noir.[fin si]". -- Négation inline La lance enchantée est un objet enchanté et non décoratif dans la clairière enchantée. Sa description est "Une lance gravée de runes lumineuses.". -- Négation verbale La pomme magique est un objet enchanté et mangeable dans la clairière enchantée. La pomme magique n’est pas mangeable. Sa description est "Une pomme dorée. Trop précieuse pour être croquée.". action apaiser ceci: changer ceci est paisible. dire "[Intitulé ceci] se calme aussitôt.". fin action action enrager ceci: changer ceci est enragé. dire "[Intitulé ceci] entre dans une rage folle !". fin action action endormir ceci: si ceci est enragé: dire "Trop tard, [intitulé ceci] est enragé.". sinon changer ceci est endormi. dire "[Intitulé ceci] s’assoupit doucement.". fin si fin action action corrompre ceci: changer ceci est corrompu. dire "Une ombre passe sur [intitulé ceci]…". fin action Le joueur est dans la clairière enchantée. [[djnc>wiki_etats_dragon_endormi|tester cet exemple]] ===== Voir aussi ===== * [[reference:definitions:visibilite|États intégrés du moteur]] * [[reference:instructions:changer|Instruction « changer »]] — modifier un état pendant la partie * [[reference:instructions:controle:si:verbes:etre|Condition « si X est Y »]] — tester un état * [[reference:definitions:objets|Objets]] et [[reference:definitions:lieux|Lieux]] — où déclarer les états en définition