Table des matières
Les classes d’éléments (types)
Chaque élément de votre jeu appartient à un type (on dit aussi une classe) : un lieu, un objet, un animal, un contenant… Le type détermine le comportement par défaut de l’élément (un contenant peut s’ouvrir, un support reçoit des objets sur lui, un animal est vivant, etc.).
Les types intégrés
Le moteur fournit une hiérarchie de types. Les plus spécifiques héritent des plus généraux : un animal est aussi un objet, donc tout ce qui vaut pour un objet vaut pour un animal.
| Type | Hérite de | Rôle |
|---|---|---|
lieu | — | un endroit où l’on se déplace |
objet | — | toute chose manipulable ou décrite |
vivant | objet | base des êtres vivants |
animal | vivant | une créature |
personne | vivant | un personnage (PNJ) |
contenant | objet | contient des objets dans lui |
support | objet | reçoit des objets sur lui |
porte | objet | sépare deux lieux, s’ouvre / se ferme |
obstacle | objet | bloque un passage |
fond | objet | un décor présent dans plusieurs lieux (voir Fonds) |
La cuisine est un lieu. Le couteau est un objet dans la cuisine. Le chat est un animal dans la cuisine. Le placard est un contenant dans la cuisine.
Créer son propre type
Vous pouvez définir un type personnalisé qui hérite d’un type existant, avec la formule Un X est un <type>. Tous les éléments de ce type partagent alors le comportement du type parent — et tout ce que vous déclarez sur le type devient le défaut de ses instances.
Un familier est un animal. Un familier est affamé. -- défaut : tout familier est affamé…
Un familier est un animal.→ un familier est aussi un animal (donc un objet).Un familier est affamé.→ chaque familier estaffamépar défaut.- Une instance peut surcharger ce défaut :
Le chien est repu..
L’état affamé utilisé ci-dessus est un état personnalisé : il doit être déclaré avant (ici une bascule affamé / repu).
Héritage en chaîne
Un type personnalisé peut lui-même servir de parent à un autre. L’héritage se propage sur toute la chaîne, et on peut poser un défaut directement dans la déclaration du sous-type :
Un chaton est un familier affamé.
Un chaton est alors aussi un familier, un animal (et un objet), et il est affamé par défaut.
Utiliser un type
Le nom du type sert ensuite à viser tous ses éléments à la fois : compter (''%%[nombre de familiers]%%''), tester si X est un familier, ou écrire une règle avant examiner un familier.
- wiki_definitions_classe_personnalisee
affamé et repu forment une bascule. Un familier est un animal. Un familier est affamé. Un chaton est un familier. La maison est un lieu. Le chat est un familier dans la maison. Le chien est un familier dans la maison. Le chien est repu. Le minou est un chaton dans la maison. Le joueur est dans la maison. action recenser: dire "Familiers : [nombre de familiers].". si le chat est affamé, dire "Le chat est affamé (défaut du type).". si le chien est repu, dire "Le chien est repu (défini sur l'instance).". si le minou est un familier, dire "Le minou (chaton) est aussi un familier.". si le minou est affamé, dire "Le minou est affamé (défaut hérité en chaîne).". fin action règle avant commencer le jeu: dire "Essayez : {/recenser/}.". fin règle
Voir aussi
- Personnages (PNJ) — le type
personne - États personnalisés — défauts de type et bascules
- Balises dynamiques —
[nombre de <type>]

