Mettre en place un système de quête standard demande beaucoup de travail, car il y a vraiment beaucoup d'éléments constituant une quête. Je vais tenter de vous donner le détail de ce que je fais, pour vous montrer en quoi c'est compliqué.

Point de départ, définir qui donne la quête. Evidence. Pour une quête, j'ai choisi de présenter 3 dialogues, un dialogue avant d'avoir accepté la quête, un dialogue une fois acceptée, et un dialogue de fin de quête.

Au moment de l'affichage de la quête, il faut donc déterminer, si le joueur a déjà la quête ou non.

Je propose 3 boutons : accepter la quête, abandonner la quête et terminer la quête. Même combat.

Une mission se terminera à un moment, mais à qui dois je parler pour valider la quête. Une information supplémentaire à stocker, le pnj à qui je dois parler en fin de quête.

Eventuellement, le pnj peut me donner un ou plusieurs items en objet de quête, au démarrage de la quête. Encore un élément à stocker et à gérer. Sachant qu'il faudra que je note un moyen pour que le joueur ne fasse pas accepter, abandonner, accepter, abandonner, pour avoir 10000 fois le même item (j'en sens capable certains d'entre vous).

De la même manière, il faut stocker les éléments de récompenses. Sachant qu'ils peuvent de diverses formes (objet, argent, point de réputation). je n'ai pas encore travaillé sur cet aspect.

Enfin, et non pas des moindres, une mission peut comporte un ou plusieurs objectifs. Pour l'instant je travaille sur un objectif 'simple', qui est le transport d'une marchandise d'un point A à un point B. Il faut donc décrire cet objectif comme étant un type transport, avec la précision de l'item à transporter et son nombre, et le lieu de livraison.

Pour des quêtes plus "complexes", tuer X ennemis, il faudra également prévoir de stocker l'avancement de l'objectif (le joueur a tue 3 ennemis sur 10). Ensuite, il y a encore plus complexe, à savoir, des missions de type protection, où la définition de l'objectif me paraît encore moins simple à préciser.