Doc Donjon FI (v3)

Éditeur de fictions interactives avec interpréteur

Outils pour utilisateurs

Outils du site


reference:definitions:fonds

Fonds (décor présent dans plusieurs lieux)

Un fond est un objet de décor présent dans plusieurs lieux à la fois : le ciel, le soleil, la mer, le sol… Il hérite d’objet, mais on ne peut pas le prendre, il n’est pas listé parmi les objets du lieu, et il n’est ni contenant ni support. En revanche on peut l’examiner, et son aperçu (s’il en a un) s’affiche avec la description du lieu.

<note>Le moteur ne gère pas nativement le fait de déposer des objets sur un fond (« poser au sol », « ranger dans le ciel »…). Si vous voulez qu’un fond reçoive des objets, programmez-le avec des règles.</note>

Portée d’un fond

On précise dans quels lieux le fond est présent, et s’il s’agit d’une seule instance partagée ou d’une instance par lieu. Deux formulations équivalentes : une phrase séparée (Il est …) ou directement dans la définition (… un fond commun …) :

Le soleil est un fond. Il est commun à tous les lieux.
La mer est un fond commun dans les lieux côtiers.
Le sol est un fond propre à chaque lieu.
Le plafond est un fond propre aux lieux couverts.
Formulation Portée Lieux concernés
commun à tous les lieux une seule instance partagée tous
commun dans les lieux <état> une seule instance partagée lieux possédant <état>
propre à chaque lieu une instance par lieu tous
propre aux lieux <état> une instance par lieu lieux possédant <état>
  • commun — une seule entité (mêmes description, aperçu et états partout). Sa présence est dynamique : si un lieu acquiert l’état du domaine en cours de partie, le fond y apparaît.
  • propre à chaque lieu — chaque lieu a sa propre instance ; on peut donc différencier ses propriétés lieu par lieu (voir plus bas).

Un fond commun : le ciel partout

wiki_fonds_commun
-- Un fond « commun » : une seule entité présente dans tous les lieux.
La plage est un lieu.
La forêt est un lieu au nord de la plage.
 
Le ciel est un fond. Il est commun à tous les lieux.
L'aperçu du ciel est "Un grand ciel bleu se déploie au-dessus de vous.".
La description du ciel est "Le ciel est limpide, sans un nuage.".

tester cet exemple — tapez regarder : l’aperçu du ciel s’affiche avec la description de la plage. Le ciel n’est pas listé parmi les objets. examiner le ciel fonctionne ; aller au nord puis de nouveau examiner le ciel : c’est le même ciel. prendre le ciel est refusé.

Aperçu et inaccessible

L’aperçu d’un fond s’affiche avec la description du lieu ; la description s’affiche sur examiner. Un fond sans aperçu n’est pas mentionné dans le lieu (mais reste examinable).

Un fond peut être déclaré inaccessible : on le voit, on l’examine, mais on ne peut pas l’atteindre (utile pour le ciel, le soleil…) :

Le ciel est un fond inaccessible. Il est commun à tous les lieux.

Un fond propre à chaque lieu

Avec propre à chaque lieu, chaque lieu reçoit sa propre instance du fond. On peut donner une valeur par défaut (sans préciser le lieu) puis surcharger l’instance d’un lieu précis avec le locateur spatial situé dans <lieu> :

wiki_fonds_propre
-- Un fond « propre à chaque lieu » : une instance distincte par lieu, personnalisable.
La cuisine est un lieu.
La salle de bain est un lieu au nord de la cuisine.
 
Le sol est un fond. Il est propre à chaque lieu.
La description du sol est "Un sol carrelé.".
La description du sol situé dans la salle de bain est "Un carrelage humide et glissant.".

tester cet exempleexaminer le sol dans la cuisine affiche « Un sol carrelé. » ; aller au nord puis examiner le sol affiche « Un carrelage humide et glissant. ».

Locateur spatial

Le locateur spatial désigne un objet (ou l’instance d’un fond propre) par où il se trouve, avec situé(e)(s) (dans|sur|sous) <cible> ou qui se trouve(nt) (dans|sur|sous) <cible> (et … ici). est reste réservé aux états ; les positions utilisent situé / se trouve.

Modifier une instance en cours de partie

Dans une règle ou une action, changer avec un locateur cible une seule instance ; les autres restent inchangées :

wiki_fonds_changer
-- Modifier une instance précise d'un fond en cours de partie avec « changer ».
La cuisine est un lieu.
 
Le sol est un fond. Il est propre à chaque lieu.
La description du sol est "Un carrelage sec.".
 
action arroser:
  phase exécution:
    changer la description du sol situé dans la cuisine est "Le carrelage est trempé.".
  phase épilogue:
    dire "Vous arrosez le sol : le carrelage est maintenant trempé.".
fin action

tester cet exempleexaminer le sol (sec), puis arroser, puis de nouveau examiner le sol (trempé).

Dans une condition

Dans une condition, situé(e)(s) (dans|sur|sous) <cible> désigne quelle instance on teste, puis est vérifie son état. Chaque instance d’un fond propre est testée indépendamment :

wiki_fonds_condition
-- Tester l'état d'une instance précise d'un fond propre dans une condition, avec « situé dans ».
La cuisine est un lieu.
Le salon est un lieu au nord de la cuisine.
 
Le sol est un fond propre. Il est propre à chaque lieu.
La description du sol est "Un carrelage.".
 
action salir:
  phase épilogue:
    changer le sol est sale.
    dire "Vous renversez un seau : le sol de la pièce est maintenant sale.".
fin action
 
règle après examiner le sol:
  si le sol situé dans la cuisine est sale, dire "(Le sol de la cuisine est sale.)".
  si le sol situé dans le salon est sale, dire "(Le sol du salon est sale.)".
fin règle

tester cet exemple — en cuisine, salir puis examiner le sol : seul le sol de la cuisine est signalé sale. aller au nord puis examiner le sol : la condition distingue toujours les deux instances — le sol du salon est resté propre.

<note important>Dans une condition, utilisez uniquement la forme situé : si le sol situé dans la cuisine est sale. La forme qui se trouve n’y est pas reconnue (elle entre en conflit avec le test de position « se trouver ») — la condition serait silencieusement considérée comme fausse.</note>

<note>L’état d’une instance d’un fond propre ne peut pas être fixé par lieu dans la définition (Le sol situé dans le salon est propre. n’a aucun effet). Donnez l’état par défaut à la classe (Le sol est un fond propre.), puis faites diverger une instance en cours de partie avec changer le sol est … (qui agit sur l’instance du lieu courant).</note>

Dans une instruction déplacer

Le locateur sert aussi à désigner tous les objets à un emplacement, par exemple avec déplacer :

déplacer les objets qui se trouvent dans le coffre vers l'inventaire.
déplacer les clés situées sur la table vers le joueur.

Voir aussi

reference/definitions/fonds.txt · Dernière modification : de 127.0.0.1