Doc Donjon FI (v3)

Éditeur de fictions interactives avec interpréteur

Outils pour utilisateurs

Outils du site


reference:definitions:classes

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
reference:definitions:classes [2022/10/11 23:04] – créée jonathanreference:definitions:classes [2026/06/20 10:46] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== Les classes d’éléments (types) ====== ====== Les classes d’éléments (types) ======
  
-{{:reference:definitions:donjontypes.png?400|}}+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.). 
 + 
 +{{:reference:definitions:donjontypes.png|}} 
 + 
 +===== 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 [[reference:definitions:fonds|Fonds]]) | 
 + 
 +<code donjon> 
 +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. 
 +</code> 
 + 
 +===== 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. 
 + 
 +<code donjon> 
 +Un familier est un animal. 
 +Un familier est affamé.            -- défaut : tout familier est affamé… 
 +</code> 
 + 
 +  * ''Un familier est un animal.'' → un familier est aussi un animal (donc un objet). 
 +  * ''Un familier est affamé.'' → chaque familier est ''affamé'' par défaut. 
 +  * Une instance peut **surcharger** ce défaut : ''Le chien est repu.''
 + 
 +L’état ''affamé'' utilisé ci-dessus est un [[reference:definitions:etats_personnalises|é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 : 
 + 
 +<code donjon> 
 +Un chaton est un familier affamé. 
 +</code> 
 + 
 +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 ([[reference:texte:balises_dynamiques|''%%[nombre de familiers]%%'']]), tester ''si X est un familier'', ou écrire une règle ''avant examiner un familier''
 + 
 +<file donjon 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 
 +</file> 
 + 
 +[[djnc>wiki_definitions_classe_personnalisee|tester cet exemple]] 
 + 
 +===== Voir aussi ===== 
 + 
 +  * [[reference:definitions:objets|Objets]] et [[reference:definitions:lieux|Lieux]] 
 +  * [[reference:definitions:pnj|Personnages (PNJ)]] — le type ''personne'' 
 +  * [[reference:definitions:etats_personnalises|États personnalisés]] — défauts de type et bascules 
 +  * [[reference:definitions:proprietes_personnalisees|Propriétés personnalisées]] 
 +  * [[reference:texte:balises_dynamiques|Balises dynamiques]] — ''%%[nombre de <type>]%%'' 
 + 
 +{{tag>classe classes type types element élément elements éléments heritage héritage type_personnalise type_personnalisé contenant support lieu objet animal personne vivant porte obstacle fond defaut défaut}} 
reference/definitions/classes.1665522265.txt.gz · Dernière modification : (modification externe)