Désolée, je n’ai pas bossé sur le projet pendant un moment.
J’ai testé la solution 1, elle ne cause pas d’erreur à la compilation, mais quand je demande, lorsque j’examine un objet say "[list of things that transborder the noun]".
et que je teste en examinant un objet, j’obtiens Glulxe fatal error: Stack overflow in function call.
à la place de la liste. J’avais testé en rajoutant des bouts pour la symétrie, puis juste avec ta définition telle quelle.
Je vais décrire ce que j’avais envisagé pour la propagation du feu, au cas où ça donne des idées. En gros, chaque objet à un niveau de flammabilité, plus il est élevé, plus c’est facile de l’enflammer (0 = ne brulera pas du tout, 5 = très facile à enflammer), les objets inflammables peuvent être dans différents états : intact, en flammes et brûlé. Je voudrais qu’on puisse tenter d’allumer des objets avec, par exemple, un briquet. Si l’objet est intact et son niveau de flammabilité est suffisamment élevé, il s’enflamme, et je pensais lancer une scène à partir de là. Tant qu’on est dans la scène, à chaque tour, on boucle sur les objets intacts « proches », et ceux dont le niveau de flammabilité est inférieur ou égal à (celui du truc en flammes le moins inflammable + 1) deviennent eux aussi en flammes. Idéalement, après un certain nombre de tours qui dépend du niveau de flammabilité (les trucs plus inflammables brûlent moins longtemps), les objets disparaissent et/ou deviennent brûlés. Si plus rien dans la zone n’est en flammes, la scène prend fin.
Ce qui m’intéressait dans la relation, c’était donc d’avoir des groupes d’objets sur lesquels je peux boucler. En soit, je vois trois grandes zones de proximité (la cheminée, la table et le lit) où les trucs pourraient brûler, ainsi que les possessions du joueur qu’on ne pourrait pas allumer, et puis le reste, je ne sais pas encore si je veux bloquer l’allumage ou juste permettre d’enflammer des trucs sans propagation.
Étant donné que je connais à l’avance les « zones » dans lesquelles je veux qu’il y aie propagation, est-ce que c’est plus simple de gérer ça à la main, en donnant des attributs aux objets au départ en fonction de là où ils sont, puis en modifiant ces attributs quand on les déplace ? Est-ce que c’est plus simple de forcer à ce que tous les trucs déplacés « à la main » soient des enfants directs des trois gros objets qui définissent mes zones (donc si je mets le tabouret dans la cheminée, puis que j’essaye de mettre un truc sur le tabouret, je demande à Inform de le mettre dans la cheminée directement), histoire de n’avoir que des enfants directs ? Est-ce qu’il y a une autre approche plus simple à laquelle je ne pense pas ?